lftp: script bash per verificare l’esistenza di una directory remota

Lftp rappresenta un utilissimo strumento per effettuare il mirroring (e non solo) di una o più directory remote.

mirror.jpg

Spulciando la manpage del suddetto tool ho notato che non esiste alcuna opzione in grado di verificare l’esistenza di una directory remota prima di inizializzare il mirroring. Proprio per questo motivo, ho deciso di realizzare il seguente scrip:

#!/bin/bash
HOST="hostname.ftpserver.com"
USER="username"
PASS="password"
LCD="/home/nightfly/prova"
RCD="/prova"

if [ ! -d $LCD ]; then
mkdir $LCD;
fi

date

lftp -c "set ftp:list-options -a;
set cmd:interactive;
open ftp://$USER:$PASS@$HOST;
lcd $LCD;
ls > /var/log/check;
quit"

if grep -q "prova" /var/log/check
        then
        lftp -c "set ftp:list-options -a;
        open ftp://$USER:$PASS@$HOST;
        lcd $LCD;
        cd $RCD;
        mirror -p -nvvv;
        quit;"
else
        cat /dev/null > /var/log/check
        exit 0
fi

In particolare, viene lanciata una prima sessione FTP che ha come unico scopo quello di listare il contenuto della root (/) remota, salvandolo in un apposito file di testo.

Successivamente, se tale file contiene la directory remota target, viene avviato il mirroring vero a proprio, altrimenti viene svuotato e lo scrip esce.

Alla prossima.

lftp: script bash per verificare l’esistenza di una directory remotaultima modifica: 2012-10-11T11:44:00+02:00da nazarenolatella
Reposta per primo quest’articolo