Voici un petit script qui permet de synchroniser un dossier local sur un serveur FTP. Il utilise lftp
et c’est très pratique si rsyncd ou ssh n’est pas disponible sur le serveur.
Si le dossier n’existe pas sur le serveur distant, il est créé automatiquement et comme l’option « delete » est activée, on s’arrête à la moindre erreur avec l’option --max-errors=0
. Il faudra modifier les variables ftphost
, ftpuser
et ftppass
pour s’adapter à votre configuration.
#!/bin/sh # # $Id$ ftphost="ftp.server.org" ftpuser="my_username" ftppass="my_password" source="$1" destination="$2" rc=1 if [ -z "$source" -o -z "$destination" ] ; then echo "usage: $(basename $0) source destination" exit $rc fi if [ -e "$source" ] ; then lftp --max-errors=0 -c " set ftp:list-options -a open ftp://$ftpuser:$ftppass@$ftphost lcd $source mkdir -f -p $destination cd $destination mirror --reverse --verbose --delete" rc=$? fi exit $rc