È possibile automatizzare l'FTP nel terminale?

4

Voglio aggiungere un comando FTP al mio crontab per scaricare automaticamente un file. Come posso fare questo?

    
posta daviesgeek 03.08.2011 - 01:41
fonte

3 risposte

5

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.

    
risposta data 03.08.2011 - 01:50
fonte
3

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
    
risposta data 03.08.2011 - 02:13
fonte
3

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
    
risposta data 03.08.2011 - 10:25
fonte

Leggi altre domande sui tag