Quiero agregar un comando FTP a mi crontab para descargar automáticamente un archivo. ¿Cómo hago esto?
Quiero agregar un comando FTP a mi crontab para descargar automáticamente un archivo. ¿Cómo hago esto?
La forma más fácil de hacerlo es con wget . Por ejemplo:
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
admite opciones para proporcionar un nombre de usuario ( --user = usuario ) y contraseña ( --password = contraseña ) si el acceso anónimo a FTP no está disponible. Y un modo --quiet para que sea cron
-friendly y no llene tu bandeja de entrada local sin mensajes para descargas exitosas.
La siguiente secuencia de comandos BASH funcionará
#!/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
Puede usar el enrollamiento, que ya está disponible en Mac OSX, y puede (para los archivos no anónimos) usar inicios de sesión almacenados en .netrc (por lo que la contraseña no aparece en una lista de ps)
ftp anónimo de vainilla
curl ftp://your.server.name/path/to/file.tar.gz > ~you/Downloads/file.tar.gz
Utilizando .netrc
curl --netrc ftp://your.server.name/path/to/file.tar.gz > ~you/Downloads/file.tar.gz
Especifique usuario / contraseña directamente (visible después en ps)
curl --user "user:password" ftp://your.server.name/path/to/file.tar.gz > ~you/Downloads/file.tar.gz
Lea otras preguntas en las etiquetas terminal data-transfer ftp