Devo scaricare tutto da un server FTP all'hosting su un server diverso. Ho accesso alla shell solo al server in cui sto scaricando i file. In che modo, utilizzando il comando FTP di Linux, posso scaricare tutti i file, creando le directory necessarie per loro nel processo?Download di tutti i file da un server FTP
26
A
risposta
53
Usa wget
in questo modo (m per il mirroring):
wget -m ftp://username:[email protected]
Se il nome utente o la password contengono caratteri speciali, potrebbe essere necessario utilizzare il formato:
wget -m --user=username --password=password ftp://ip.of.old.host
In alternativa, ho trovato this guide che mostra come farlo usando ncftp in Debian. Sarà necessario l'accesso root al nuovo server se ncftp non è già installato.
In breve:
sudo apt-get install ncftp
ncftpget –T –R –v –u "ftpuser" ftp.nixcraft.net /home/vivek/backup /www-data
1
Alcuni FTP server permettono di scaricare intere directory dal suffisso il loro nome con .tar o .tgz. Il server quindi crea un archivio di tale directory.
1
Un altro modo è utilizzare ftp
. Ecco uno script di shell di esempio che utilizza ftp:
#! /bin/bash
ftp -n << 'EOF'
open ftp.your_ftp_host.com
quote USER your_username_here
quote PASS your_password_here
cd gets
prompt no
mget * .
bye
EOF
Grazie. In realtà l'avevo trovato io stesso proprio prima di vederlo. Non stavo usando i termini di ricerca di google giusti le prime cinque volte. – Navarr
Se ricevi un messaggio di errore "porta errata" potresti avere un indirizzo e-mail come nome utente (Internet sta diventando strano) e @ sta confondendo wget. Prova: wget -m --user [email protected] --password myPassword ftp://example.com –
Quando la password ha '@' alla fine, questo non funziona. C'è un'alternativa? –