LFTP

LFTP c’est comme FTP, mais en mieux.
# apt-get install lftp

Se connecter au serveur ftp :
$ lftp -u username,password -p portnumber x.x.x.x -e 'cd httpdocs'
username = nom de l’utilisateur du compte ftp
password = mot de passe de l’utilisateur ftp
x.x.x.x = adresse ip du serveur
portnumber = numéro du port utilisé
-e = lancer une commande une fois connecté.

Télécharger récursivement, tous les fichiers d’un répertoire :
lftp ~> mirror -c /repertoire_serveur
-c = continue en cas de coupure

Pousser récursivement, tous les fichiers d’un répertoire local sur le serveur :
lftp ~> mirror -R -c /repertoire_local

Quelques options :

Permet d’écraser les fichiers si il existe des fichiers plus récents :
lftp ~> set xfer:clobber on

Ne pas vérifier le certificat du serveur :
(En cas d’erreur : Fatal error: Host key verification failed)
Faire :
lftp ~> set sftp:auto-confirm yes

ou
(En cas d’erreur : Fatal error: Certificate verification: subjectAltName does not match...)
Faire :
lftp ~> set ssl:verify-certificate no

Afficher les fichiers cachés :
lftp ~> set ftp:list-options -a

Afficher toutes les options en cours :
lftp ~> set -a

Obtenir de l’aide sur une commande :
lftp ~> help <commande>

Efface récursivement tous les fichiers qui ont le même MOTIF :

Script à exécuter sur l’ordinateur local

#!/bin/bash
server="-u ftp_username,ftp_password -p portnumber xxx.xxx.xxx.xxx"
work_folder="httpdocs/wp-content/uploads"
motif="motif a chercher"

{
  {
    lftp ${server} << EOF
    find ${root_folder} | grep ${motif}
    quit
    EOF
  } | awk '{ printf "rm \"%s\"\n", $0 }'
} | lftp ${server}
# (Commenter le dernier pipe pour obtenir une simulation du résultat)

SFTP :

$ lftp sftp://<LOGIN>@<ADRESSE IP>:<PORT>

Leave a Reply