Contactez-nous
Kitpages
17 rue de la Frise
38000 Grenoble
tel : 04 58 00 33 81
Scripter des accès FTP avec bash
Scripter des transferts FTP en shell
On a parfois envie d'exécuter des commandes FTP en cron ou dans des scripts non interactifs. (transfert d'un backup tous les jours par FTP par exemple).
Nous notons ici quelques scripts shell (en bash) qui permettent cela.
Copier un backup tous les mois sur un FTP
Dans l'exemple suivant, on a créé un fichier backup.tgz et on le transfère sur un serveur FTP.
#!/bin/sh # constantes HOST=ftp.monhost.com LOGIN=mon_login PASSWORD=mon_password PORT=21 # le transfert lui même ftp -i -n $HOST $PORT << END_SCRIPT quote USER $LOGIN quote PASS $PASSWORD pwd bin put backup.tgz quit END_SCRIPT
Récupérer tous les fichiers d'un répertoire FTP
Dans cet exemple, on veut récupérer tous les fichiers d'un répertoire FTP sur son poste local.
Notons juste le "prompt" dans les commandes envoyées au serveur FTP, pour que le FTP nous pose pas de question à chaque fichier transféré
#!/bin/sh # constantes HOST=ftp.monhost.com LOGIN=mon_login PASSWORD=mon_password PORT=21 # le transfert lui même ftp -i -n $HOST $PORT << END_SCRIPT quote USER $LOGIN quote PASS $PASSWORD pwd cd le_repertoire_ou_sont_les_fichiers bin prompt mget * quit END_SCRIPT
Récupérer de façon récursive tout le contenu d'un serveur FTP
Pour récupérer de façon récursive tous les documents d'un serveur FTP, on peut coder quelque chose avec un client FTP, mais il y a une astuce beaucoup plus simple utilisant wget.
#!/bin/sh # constantes HOST=ftp.monhost.com LOGIN=mon_login PASSWORD=mon_password PORT=21 # le transfert lui même wget -r ftp://$LOGIN:$PASSWORD@$HOST
Conclusion
N'hésitez pas à ajouter vos propres astuces dans les commentaires.
Commentaires
Ajouter un commentaire