{{tag>Réseau Shell SFTP FTP TLS}}
= Notes client FTP lftp
Voir aussi :
* rclone
* ncftp
* curl ex : ''curl -X NLST ftp://example.com/''
* ~/.netrc
== Exemple de configuration lftp
''~/.lftp/rc''
# set ftp:ssl-force false
set ssl:verify-certificate/ftp.truc.com no
#set prompt "lftp \S\? \u\@\h:\w> "
#set ftp:passive-mode off
#set ftp:ssl-force/ftp.adobe.com off
#set ftp:use-feat/ftp.adobe.com off
set cache:enable no
== Exemple utilisation
Liste toutes les variables lftp
set -a
Passage en mode binaire. Nécessaire ?
# set type binary
quote type i
=== Exemple 1
lftp ftp://user:Passw0rd@ftp1.acme.fr
NOTE : le mot de passe être défine dans ''~/.netrc''
=== Exemple 2 - Envois sosreport à RedHat
lftp -v -c 'open -e "set ftps:initial-prot ""; \
set ftp:ssl-force true; \
set ftp:ssl-protect-data true; \
set ssl:verify-certificate true; \
set ftp:proxy http://192.168.56.1:3128 ; \
open anonymous:ftp@dropbox.redhat.com ; \
cd incoming ; \
put testfile'
=== Exemple 2 - mirroir - comme un rsync sur FTP
NOTE : Il est aussi possible d'utiliser
* la commande **wget**
* **curlftpfs** avec **rsync** => à la place de curlftpfs il est préfèrable d'utiliser **rclone**
lftp user@example.com:/pub> mirror -v data /ftp_mirror
lftp user@example.com:/pub> mirror -Rv /data/remote_copy .
Source : http://rajaseelan.com/2011/12/20/rsync-over-ftp/
lftp -c "set ftp:list-options -a;
open ftp://user:password@your.ftp.com;
lcd ./web;
cd /web/public_html;
mirror --reverse --delete --use-cache --verbose --allow-chown
--allow-suid --no-umask --parallel=2 --exclude-glob .svn"
#!/bin/bash
HOST="your.ftp.host.dom"
USER="username"
PASS="password"
FTPURL="ftp://$USER:$PASS@$HOST"
LCD="/path/of/your/local/dir"
RCD="/path/of/your/remote/dir"
#DELETE="--delete"
lftp -c "set ftp:list-options -a;
open '$FTPURL';
lcd $LCD;
cd $RCD;
mirror --reverse \
$DELETE \
--verbose \
--exclude-glob a-dir-to-exclude/ \
--exclude-glob a-file-to-exclude \
--exclude-glob a-file-group-to-exclude* \
--exclude-glob other-files-to-exclude"
Source : https://serverfault.com/questions/24622/how-to-use-rsync-over-ftp
== Autres
(rclone config)
1 / ProFTPd can't handle '*' in file names
\ (Asterisk,Ctl,Dot,Slash)
2 / PureFTPd can't handle '[]' or '*' in file names
\ (BackSlash,Ctl,Del,Dot,RightSpace,Slash,SquareBracket)
3 / VsFTPd can't handle file names starting with dot
\ (Ctl,LeftPeriod,Slash)
== Pb
=== Pb 1
http://www.unix.com/shell-programming-and-scripting/170285-how-connect-ftp-server-requires-ssl-authentication.html
lftp ftp://utilisateur:pass@ftp.serveur.org/Prod/Rapport
lftp utilisateur@ftp.serveur.org:/Prod/Rapport> get Fichier.csv
get: L'accès a échoué : 534 Policy requires SSL. (Fichier.csv)
set ftp:ssl-protect-data true
lftp ssmf@91.121.109.131:/Prod/Rapport> get LmkMonthlyExport-20150201.csv
2086953 octets transférés
set ftp:ssl-protect-data/ftp.serveur.org true
=== Pb 2
lftp utilisateur@ftp.serveur.org:/Prod/Rapport> get Fichier.csv
get: L'accès a échoué : 534 Protection level negotiation failed. (Fichier.csv)
Voir https://access.redhat.com/solutions/336113
Au tout début de la connexion
set ftp:ssl-force true
set ftp:ssl-protect-data true