Différences

Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.

Lien vers cette vue

linux:synchro_lftp [2010/03/06 09:17]
matthieu
linux:synchro_lftp [2011/01/11 23:50] (Version actuelle)
matthieu
Ligne 1: Ligne 1:
 +{{tag>fr fr:linux fr:transfert_de_fichier fr:sauvegarde}}
 ====== Synchronisation lftp ====== ====== Synchronisation lftp ======
  
Ligne 74: Ligne 75:
 et distant sont utilisés. et distant sont utilisés.
 </code> </code>
 +
 +Il est fortement recommandé d'utiliser l'option --dry-run pour les essais.
 +
 +Voici un exemple de synchronisation par download :
 +  mirror /Data/Photos /data/transfert/photos -v --log /var/log/lftp/download_nas --parallel=10 --no-perms -e
 +
 +  * /Data/Photos est la source située sur le serveur distant
 +  * /data/transfert/photos est la cible locale
 +  * -v rend lftp plus verbeux
 +  * --log indique dans quel fichier inscrire les logs, attention ce fichier est écrasé à chaque exécution et n'indique pas le résultat des dry-run
 +  * --parallel indique le nombre de transferts en parallèle, pratique pour les fichiers de petite taille
 +  * --no-perms ne synchronise pas les permissions
 +  * -e supprime dans le répertoire cible les fichiers absents de la source
 +
 +Voici un exemple de synchronisation en upload :
 +  mirror -R /space/Videos/ /data/videos/ --ignore-time --no-perms -e -v
 +
 +  * -R indique une synchronisation inverse (upload)
 +  * /space/Videos/ est la source locale à transférer
 +  * /data/videos/ est la cible située sur le serveur distant
 +  * --ignore-time indique de ne pas utiliser la date et l'heure des fichiers pour identifier si un transfert est nécessaire (seule la taille est utilisée)
 +  * --no-perms indique de ne pas synchroniser les permissions
 +  * -e supprime dans le répertoire cible les fichiers absents de la source
 +  * -v rend lftp plus verbeux
 +
 +En upload, il n'est pas possible de modifier l'heure des fichiers destinations et souvent les permissions également, c'est pourquoi il est recommander de les désactiver.
 +
 +Lorsque la commande désirée est finalisée, il est possible de la copier dans un fichier pour faire un script lftp.
 +
 +Par exemple :
 +<file>
 +connect nas
 +mirror /Data/Photos /data/transfert/photos -v --log /var/log/lftp/download_nas --parallel=10 --no-perms -e
 +</file>
 +
 +Il suffit ensuite d'exécuter le script avec l'option -f de lftp.
  
 ===== Synchronisation automatisée par script ===== ===== Synchronisation automatisée par script =====
  
 +Pour automatiser cela, voici un petit script qui exécute un fichier de commande lftp.\\
 +Ce script exécute lftp en tâche de fond comme un daemon et permet de l'arrêter ou le redémarrer.
 +
 +Pour utiliser le script, il faut :
 +  - le copier dans un fichier
 +  - modifier NAME à votre convenance
 +  - modifier le lien vers le scripts lftp dans DAEMON_OPTS
 +  - rendre le fichier exécutable
 +
 +Ce script dispose des options suivantes :
 +  * start : démarre la synchro
 +  * stop : arrête le process lftp
 +  * restart : arrête puis redémarre la synchro
 +  * check : indique si le process est toujours en cours
 +
 +Script :
 +<file>
 +#!/bin/sh
 +
 +# lftp synchronization script by Matthieu Bouthors
 +# http://www.bouthors.fr
 +
 +# Change NAME and DAEMON_OPTS before use
 +set -e
 +
 +# Must be a valid filename
 +NAME=lftp_synchro
 +PIDFILE=/var/run/$NAME.pid
 +#This is the command to be run, give the full pathname
 +DAEMON=/usr/bin/lftp
 +DAEMON_OPTS="-f /chemin/vers/cmd.lftp"
 +
 +export PATH="${PATH:+$PATH:}/usr/sbin:/sbin"
 +
 +# check if lftp is running
 +
 +RUNNING=false
 +if [ -e $PIDFILE ]
 +then
 +        currentpid=`cat $PIDFILE`
 +        if `ps -p $currentpid > /dev/null`
 +        then
 +                RUNNING=true
 +        else
 +                rm -f $PIDFILE
 +        fi
 +fi
 +
 +case "$1" in
 +  start)
 +        date
 +        if $RUNNING
 +        then
 +                started=`date -r $PIDFILE`
 +                echo "daemon $NAME already started since $started, you need to stop it first"
 +        else
 +                echo -n "Starting daemon: "$NAME
 +                start-stop-daemon --start --quiet --pidfile $PIDFILE --make-pidfile --background --exec $DAEMON -- $DAEMON_OPTS
 +                echo "."
 +        fi
 +        ;;
 +  stop)
 +        date
 +        echo -n "Stopping daemon: "$NAME
 +        start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE
 +        rm -f $PIDFILE
 +        echo "."
 +        ;;
 +  restart)
 +        date
 +                echo -n "Restarting daemon: "$NAME
 +        if $RUNNING
 +        then
 +                start-stop-daemon --stop --quiet --oknodo --retry 30 --pidfile $PIDFILE
 +                rm -f $PIDFILE
 +        fi
 +        start-stop-daemon --start --quiet --pidfile $PIDFILE --make-pidfile --background --exec $DAEMON -- $DAEMON_OPTS
 +        echo "."
 +        ;;
 +  check)
 +        if $RUNNING
 +        then
 +                echo "$NAME is running"
 +        else
 +                echo "$NAME is not running"
 +        fi
 +        ;;
 +
 +  *)
 +        echo "Usage: "$1" {start|stop|restart|check}"
 +        exit 1
 +esac
  
 +exit 0
 +</file>
linux/synchro_lftp.1267863469.txt.gz · Dernière modification: 2010/03/06 09:17 par matthieu
Recent changes RSS feed Debian Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki