Eine Bemerkung zum Beginn: Rein aus Sicherheitsgründen verwende ich FTP nicht gern. Aber bei einigen Projekten kommt man nicht herum sich damit auseinanderzusetzen, da der Hoster dies als einzige Datenübertragungsmethode anbietet.
Nun aber zum Problem. Der Standard FTP Client „ftp“ kann mehrere Dateien mit mput verarbeiten. Leider ist diese Funktion nicht rekursiv. Gerade beim Upload von mehreren Dateien und Ordnern via Script wird es schnell aufwändig. Einen ganz charmanten Ansatz bietet ncftp. Dort kann ich mput mit dem Paramater -R verwenden und Rekursiv hochladen.
Wenn das Paket noch nicht auf der Maschine installiert ist, kann das mit folgendem Befehl nachgeholt werden.
sudo apt-get install ncftp
Nun das Script zum Upload:
#!/bin/bash HOST='ftp.domain.de' USER='ftpusername' PASSWD='ftppassword' ncftp -u $USER -p $PASSWD $HOST << EOT passive ascii cd /remote_directory lcd /local/upload/directory/ mput -R * bye EOT
Weitere Informationen zum Thema:
http://www.ncftp.com/