info:ftp_without_password_prompt

.netrc

source: http://www.gninneh.dk/2007/04/25/using-ftp-in-terminal-without-entering-password/

The ftp-client looks for a file called .netrc with information about the server to be logged in to. Say, you normally type ftp ftp.yourdomain.com, then you just enter the following in a text file which you save to the name .netrc in ~.

gedit ~/.netrc

machine ftp.yourdomain.com
login your_user_name
password your_password
cp ~/.netrc.akademia  ~/.netrc
lftp -e "open radeff.red;mirror -R /home/radeff/soft/joomla/patches/1.5/last /web/cms/joomla;exit"

source: http://forum.ubuntu-fr.org/viewtopic.php?id=103208

user@computer$ lftp -e “open ftpperso.free.fr ; user ton.login.à.free.fr ; mirror -n -R ton_dossier_local ton_dossier_distant ; bye”

Ou encore, pour mettre à jours certains dossiers précis :

user@computer$ lftp -e “open ftpperso.free.fr ; user ton.login.à.free.fr ; mirror -n -R ton_dossier_local1 ton_dossier_distant1 ; mirror -n -R ton_dossier_local2 ton_dossier_distant2 ; bye”

Bref, c'est assez simple, et sympa à mettre dans un cron ou un truc du genre.

Par ailleurs, si ça devient un peu long, lftp peut utiliser des fichiers de script plutôt que de passer par l'option -e

Note Fred:

d'abord configurer son (l)ftp pour avoir un accès sans mot de passe (voir supra), puis

faire un script comme celui-ci

lftp “radeff.red” -e “mirror -n -R /home/radeff/akademia/path /web/path”

puis mettre un bouton gnome pour l'exécuter d'un simple clic et c'est OK

Encore une autre solution, un script sh

source:

#!/bin/sh
Server=www.truc.ch
Username=sys_truc
Password=bidule
ftp -n $Server <<End-Of-Session
user $Username $Password

binary
bell
dir
pwd
cd test
pwd
dir

Mirroring FTP

Souhaitant faire une copie de sauvegarde d'un de mes comptes ftp, j'ai regardé quel type de solution pouvait être mis en place.

Dans le cas présent, je me suis intéresse à wget (aspirateur aux nombreuses options) et à lftp (client ftp puissant).

On vérifie tout d'abord que wget est disponible :

linuxbox# wget

Si non alors on procéde à son installation…

linuxbox# apt-get install wget

Ceci étant, pour me connecter au ftp je vais taper la commande suivante :

linuxbox# wget –mirror ftp://user:pass@IP_ou_Nomdusite/public_html/*

l'option –mirror est un équivalent de l'activation des options suivantes :

-r -N -l inf –no-remove-listing.

Une autre solution est possible en utilisant l'option –recursive de wget :

wget –recursive ftp://user:pass@IP_ou_Nomdusite/public_html/*

Ceci étant, il est envisageable d'utiliser une telle commande pour programmer des mise à jours régulière en cron.

A présent, si l'on souhaite faire la même chose avec un client ftp comme lftp, rien de plus simple, lui aussi propose une option mirror.

On vérifie si lftp est installé.

linuxbox# lftp

Si non on fait un apt-get…

linuxbox# apt-get install lftp

Pour établir une connexion :

linuxbox# lftp IP_ou_Nomdusite

En sortie nous avons ceci :

lftp IP_ou_Nomdusite:~>

lftp IP_ou_Nomdusite:~> USER toto

On rentre le mot de passe du compte :

Mot de passe:

Pour voir le contenu du site :

lftp IP_ou_Nomdusite:~> ls

Voici un exemple de ce que vous devriez obtenir :

drwxr-xr-x 4096 Jun 15 03:10 . drwxr-xr-x 4096 Jun 15 03:10 .. drwxr-xr-x 4096 Jun 15 03:26 public_html

Si vous souhaitez exécuter une commande en local on rajoute ! devant la commande, dans le cas présent, je liste le contenu du répertoire courant :

lftp IP_ou_Nomdusite:~> !ls

Si je souhaite faire un mirroir du répertoire public_html, il suffit de taper la commande suivante :

lftp IP_ou_Nomdusite:~> mirror public_html/

Dans le cas présent, le répertoire courant local contiendra mon mirroir.

Sinon je peux définir l'endroit où il sera stocker comme ceci

lftp IP_ou_Nomdusite:~> mirror public_html/ /home/toto/copie_ftp/

NOTE : pour avoir un complément d'information concernant la commande MIRROR, vous pouvez obtenir l'aide :

lftp IP_ou_Nomdusite:~> help mirror

Si vous souhaitez pouvoir sauvegarder les fichiers cachés commençant par un point, vous pouvez définir ceci :

set ftp:list-options -a soit directement comme ceci :

lftp IP_ou_Nomdusite:~> set ftp:list-options -a

Soit en éditant le fichier de configuration /etc/lftp.conf et en ajoutant la ligne :

set ftp:list-options -a

Ceci permettant de lister les fichiers cachés et donc de les inclures dans le mirroir.

Si vous avez déjà une copie de votre mirroir localement, vous pouvez souhaiter récupérer les nouveaux fichiers.

Option : -n : –only-newer

Si vous souhaitez faire une miroir inversé c'est-à-dire envoyer les fichiers qui se trouve en local vers le site distant, vous utiliserez l'option -R (–reverse) :

lftp IP_ou_Nomdusite:~> mirror -R /home/toto/copie_ftp/ public_html/

Tout comme pour wget, nous pouvons parfaitement envisager l'utilisation d'un script qui permettra d'automatiser la mise à jour du miroir.

Voir aussi: http://tutorials.papamike.ca/pub/lftp.html#scheduling

ncftp

ncftp - A user-friendly and well-featured FTP client

sudo apt-get ncftp

… je l'ai pas encore testé …

Cela à l'air très bien … si on ne dispose pas d'accès ssh et si on ne veut pas utiliser curlftp.

  • info/ftp_without_password_prompt.txt
  • Dernière modification : 2018/07/18 09:45
  • de radeff