sviluppo-web-qa.it

Utilizzo di wget per scaricare ricorsivamente intere directory FTP

Voglio copiare tutti i file e le cartelle da un host a un altro. I file sul vecchio host si trovano in/var/www/html e ho solo l'accesso FTP a quel server e non riesco a TAR tutti i file. La connessione regolare al vecchio host tramite FTP mi porta alla cartella/home/admin.

Ho provato a eseguire il seguente comando dal mio nuovo server:

wget -r ftp://username:[email protected]

Ma tutto quello che ottengo è un file index.html inventato.

Qual è la sintassi giusta per usare wget in modo ricorsivo su FTP?

97
user9406

Provare -m per --mirror

wget -m ftp://username:[email protected]
129
Dave Cheney

Hai ragione, hai solo bisogno di un finale * alla fine:

wget -r ftp://username:[email protected]/dir/*

Per i server condivisi, è possibile utilizzare in questo modo:

wget -r ftp://1.2.3.4/dir/* --ftp-user=username --ftp-password=password

Poiché la maggior parte dei server condivisi ha ftp-username qualcosa come username @ hostname, quindi, il primo comando wget non funziona e il secondo comando funziona bene.

39
Formoda

Oltre a wget, puoi anche usare lftp in modalità script. Il comando seguente rispecchierà il contenuto di una determinata directory FTP remota nella directory locale specificata e può essere inserito nel processo cron:

lftp -c 'open <hostname>; user <username> <password>; mirror -e <remote-src-path> <local-dest-path>; quit'

Gestisce automaticamente la ricorsione in directory e consente di specificare la directory iniziale di origine remota da cui scaricare i dati.

7
zappan

Controlla il seguente comando wget per scaricare i dati da FTP in modo ricorsivo.

wget --user="<user-name>" --password="<password>" -r -np -nH --cut-dirs=1 --reject "index.html*" "<URL to download files>"

-r: È per il download ricorsivo.

-np: È per nessun genitore in ordine crescente.

-nH: Serve per disabilitare la creazione di una directory con nome uguale all'URL, ad esempio abc.xyz.com

--cut-dirs: Serve per ignorare il numero di directory principali. Il valore di questa opzione differirà per il tuo comando.

È possibile verificare eseguendo il comando sopra.

5
AVJ

Puoi usare 'curlftpfs - mount un ftp Host come directory locale' e, una volta montato, puoi usare normali strumenti di file come 'cp -r'.

5
chmeee

Utilizzare -m anziché -r, a causa della profondità di ricorsione.

http://www.editcorp.com/Personal/Lars_Appel/wget/wget_2.html#SEC11

3
Bojan Hrnkas

Dovrebbe funzionare provare:

wget -r ftp://ftp:[email protected]/tst/
2
rkthkr

Uso:

wget -m ftp://192.168.0.1

e rispecchierà tutti i file e le cartelle.

2
Rajat

Come ho detto, l'accesso tramite FTP mi porta nella cartella/home/admin, e i file di cui ho bisogno sono in/var/www/html

Penso che funzionerà nel tuo caso:

wget -r ftp://192.168.0.1/../../var/www/html
1
kubanczyk

Questa è la sintassi giusta. Non sono sicuro del motivo per cui non stai ottenendo i risultati previsti.

Come sempre c'è più di un modo per farlo. Prova ncftp, in particolare ncftpget

1
goo

Posso capire se stai provando a scaricare questo in cron o qualcosa del genere, ma perché non semplicemente ftp nel server con il tuo client normale e mget *? Questo potrebbe essere un percorso più rapido per il successo.

1
dr.pooter

Mi sono imbattuto in hosting di Windows con il nome utente come brinkster/nome utente, quindi wget genererebbe un errore se si utilizza la sintassi:

wget -m ftp://brinkster/username:[email protected]

Per superare questo, utilizzare

wget -m ftp://brinkster%2Fusername:[email protected]

Ho dovuto affrontare questo con Windows hosting @ brinkster.

0
Anto Joseph