5 votes

Est-il possible d'automatiser le FTP en Terminal ?

Je veux ajouter une commande FTP à ma crontab pour télécharger automatiquement un fichier. Comment dois-je m'y prendre ?

6voto

shsteimer Points 8749

La manière la plus simple de le faire est d'utiliser wget . Par exemple :

Ian-Cs-MacBook-Pro:ianc ian$ wget ftp://gnjilux.cc.fer.hr/welcome.msg
--2011-08-02 19:48:00--  ftp://gnjilux.cc.fer.hr/welcome.msg
           => `welcome.msg'
Resolving gnjilux.cc.fer.hr... 161.53.74.67
Connecting to gnjilux.cc.fer.hr|161.53.74.67|:21... connected.
Logging in as anonymous ... Logged in!
==> SYST ... done.    ==> PWD ... done.
==> TYPE I ... done.  ==> CWD not needed.
==> SIZE welcome.msg ... 1462
==> PASV ... done.    ==> RETR welcome.msg ... done.
Length: 1462 (1.4K) (unauthoritative)

100% [======================================================================================================================================================================================================================================>] 1,462       --.-K/s   in 0s      

2011-08-02 19:48:03 (63.4 MB/s) - `welcome.msg' saved [1462]

wget supporte les options permettant de fournir un nom d'utilisateur ( -- utilisateur \= usuario ) et mot de passe ( --mot de passe \= mot de passe ) si l'accès FTP anonyme n'est pas disponible. Et un -- tranquille pour que ce soit cron -Il est convivial et ne remplit pas votre boîte de réception locale de messages de téléchargements réussis.

4voto

Petros Points 4430

Le BASH script ci-dessous fonctionnera

#!/bin/bash

remotefile="/path/to/ftp/server/file.png"
hostname="ftp.server.net"
username="ftpuser"
password="ftppass"
ftp -in $hostname<<EOF
quote USER $username
quote PASS $password

binary
get $remotefile $HOME/temp/file.png
quit
EOF

4voto

nohillside Points 82672

Vous pouvez utiliser curl qui est déjà disponible sous Mac OSX et qui peut (pour un ftp non anonyme) utiliser des identifiants stockés dans .netrc (ainsi le mot de passe n'apparaît pas dans une liste ps).

ftp anonyme simple

curl ftp://your.server.name/path/to/file.tar.gz > ~you/Downloads/file.tar.gz

Utilisation de .netrc

curl --netrc ftp://your.server.name/path/to/file.tar.gz > ~you/Downloads/file.tar.gz

Spécifier l'utilisateur/mot de passe directement (visible dans ps ensuite)

curl --user "user:password" ftp://your.server.name/path/to/file.tar.gz > ~you/Downloads/file.tar.gz

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X