Voglio aggiungere un comando FTP al mio crontab per scaricare automaticamente un file. Come posso fare questo?
Voglio aggiungere un comando FTP al mio crontab per scaricare automaticamente un file. Come posso fare questo?
Il modo più semplice per farlo è con wget . Ad esempio:
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
supporta le opzioni per fornire un nome utente ( - utente = utente ) e password ( - password = password ) se l'accesso FTP anonimo non è disponibile. E una modalità - silenziosa così è cron
-friendly e non riempie la tua casella di posta locale senza messaggi per i download di successo.
Lo script di BASH qui sotto funzionerà
#!/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
Puoi usare arricciatura che è già disponibile in Mac OSX e puoi (per ftp non anonimo) usare gli accessi memorizzati in .netrc (quindi la password non compare in un elenco ps)
Semplice ftp anonimo alla vaniglia
curl ftp://your.server.name/path/to/file.tar.gz > ~you/Downloads/file.tar.gz
Uso di .netrc
curl --netrc ftp://your.server.name/path/to/file.tar.gz > ~you/Downloads/file.tar.gz
Specifica direttamente utente / password (visibile successivamente in ps)
curl --user "user:password" ftp://your.server.name/path/to/file.tar.gz > ~you/Downloads/file.tar.gz
Leggi altre domande sui tag ftp terminal data-transfer