Je veux ajouter une commande FTP à ma crontab pour télécharger automatiquement un fichier. Comment dois-je m'y prendre ?
Réponses
Trop de publicités?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.
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