FTP en ligne de commande ou dans un script shell

mardi 15 juin 2010, par Minimalteck

Comment transférer aisément des fichiers vers un serveur FTP en ligne de commande ou dans script shell ?

En toute simplicité grâce à LFTP, un client FTP/HTTP aux multiples atouts

Voici un exemple d’utilisation basique : transfert des fichiers contenus dans un répertoire et déplacement de ceux-ci dans un sous-dossier.

 Méthode 1 : LFTP

#!/bin/sh
HOST="ftp.domain.tld"
USER="ftpuser"
PASS="PassWord"
REP_BASE="/home/user/ftpbackup/"
REP_ARCHIVE="${REP_BASE}archived/"

/usr/bin/lftp  ftp://${USER}:${PASS}@${HOST} -e "mput ${REP_BASE}* ; quit";
EXITSTATUS=$?
if [ $EXITSTATUS != "0" ]
then
        echo "Error";       
else
        echo "Transfert complete. Move the files";
        find ${REP_BASE} -maxdepth 1 -type f -exec mv -v {} {REP_ARCHIVE} \;
fi
exit 0;

 Méthode 2, l’alternative "FTP standard"

#!/bin/sh
HOST="ftp.domain.tld"
USER="ftpuser"
PASS="PassWord"
REP_BASE="/home/user/ftpbackup/"
REP_ARCHIVE="${REP_BASE}archived/"

/usr/bin/ftp -v -n -i ${HOST} <<EOF
user ${USER} ${PASS}
cd /
lcd ${REP_BASE}
binary
mput ./*
quit
EOF

EXITSTATUS=$?
if [ $EXITSTATUS != "0" ]
then
        echo "Error";       
else
        echo "Transfert complete. Move the files";
        find ${REP_BASE} -maxdepth 1 -type f -exec mv -v {} {REP_ARCHIVE} \;
fi
exit 0;

P.-S.

Références
- Site officiel
- Man LFTP

SPIP | squelette | | Plan du site | Suivre la vie du site RSS 2.0