FTP Session automatisieren (Skript)

Um lokal erzeugte Backups auf einen Backup Server automatisch zu übertragen, kann eine FTP-Session auch in einem Shell Skript ablaufen. Nötig sein kann das, wenn man einen Server bei einem Provider gemietet hat und kein Backup Agent installiert werden kann. Ich sichere dieses Wiki jedoch ebenfalls mit einem Skript und übertrage im Anschluss das Backup auf unseren FTP Server. Man hat in einem Script die Möglichkeit Benutzereingaben zu definieren, wie zB die Eingabe eines FTP Users oder des Passworts, man kann Verzeichnisse wechseln etc. Diese Fähigkeit nennt man »Here Documents« oder auch Hier-Dokumente1). Hier ein Beispielscript so einer automatisierten FTP-Session:

ftpscript.sh

#!bin/bash
 
FTPSRV=your.ftpserver.com
FTPUSR=youruser
FTPPAS=secret
LCD=/tmp
 
ftp -n $FTPSRV <<EOF
quote user $FTPUSR
quote pass $FTPPAS
epsv
lcd $LCD
put example.txt
bye
exit
EOF

Ein Ablauf einer solchen Session schaut dann in etwa so aus:

$ sh ftpscript2.sh
Connected to ftp.server.de.
220 "Welcome to the SERVER AG FTP Service."
331 Please specify the password.
230 Login successful.
EPSV/EPRT on IPv4 off.
Local directory now: /private/tmp
local: example.txt remote: example.txt
227 Entering Passive Mode (192,168,109,101,252,79)
150 Ok to send data.
 12        0.00 KiB/s 
226 File receive OK.
221 Goodbye.

Note: Es versteht sich von selbst, dass Passwörter im Klartext in Dateien (egal welchen) ein Sicherheitsrisiko darstellen. Verwenden Sie solche Workarounds, welche dies erforderlich machen, nur dann, wenn es sich nicht um sensible Daten oder wirklich geheime Passwörter handelt. Ich verwende den og Workaround zB um dieses Wiki zu sichern, ein User und Passwort sind nur deshalb eingerichtet, weil ich auf Anonymous FTP verzichten wollte. Die Daten an sich sind ja im Prinzip nicht vertraulich, jeder kann sie lesen.




Verwandte Artikel:
-> VSFTP Installation und Konfiguration
-> E-Mail vs FTP
-> Serverdienst Zugangskontrolle


pronto 2010/08/20 12:28