Quero adicionar um comando FTP ao meu crontab para baixar automaticamente um arquivo. Como eu faço isso?
Quero adicionar um comando FTP ao meu crontab para baixar automaticamente um arquivo. Como eu faço isso?
Respostas:
A maneira mais fácil de fazer isso é com o wget . Por exemplo:
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
suporta opções para fornecer um nome de usuário ( --user = usuário ) e senha ( --password = password ) se o acesso anônimo FTP não está disponível. E um modo - silencioso , para que ele seja cron
amigável e não encha sua caixa de entrada local sem mensagens para downloads bem-sucedidos.
O script BASH abaixo 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
Você pode usar curl que já está disponível no Mac OSX e pode (para ftp não-anônimo) usar logins armazenados em .netrc (para que a senha não apareça na lista ps)
FTP simples de baunilha anônimo
curl ftp://your.server.name/path/to/file.tar.gz > ~you/Downloads/file.tar.gz
Usando .netrc
curl --netrc ftp://your.server.name/path/to/file.tar.gz > ~you/Downloads/file.tar.gz
Especifique usuário / senha diretamente (visível no ps depois)
curl --user "user:password" ftp://your.server.name/path/to/file.tar.gz > ~you/Downloads/file.tar.gz