Quero copiar todos os arquivos e pastas de um host para outro. Os arquivos no host antigo ficam em / var / www / html e eu só tenho acesso FTP a esse servidor e não consigo TAR todos os arquivos. A conexão regular com o host antigo por FTP me leva à pasta / home / admin.
Tentei executar o seguinte comando do meu novo servidor:
wget -r ftp://username:[email protected]
Mas tudo o que recebo é um arquivo index.html inventado.
Qual a sintaxe correta para usar o wget recursivamente sobre FTP?
Respostas:
Tente
-m
por--mirror
fonte
--ask-password
para evitar que a senha seja mantidahistory
.wget -m ftp://username:[email protected]/mydir/
Você está certo, você só precisa de um * final no final:
Para servidores compartilhados, você pode usar assim:
Como a maioria dos servidores compartilhados possui ftp-username semelhante a username @ hostname, o primeiro comando wget não funciona e o segundo comando funciona bem.
fonte
-m
ou-r -l inf
porque -r possui uma profundidade de recursão padrão de 5. Veja gnu.org/software/wget/manual/…Além do wget, você também pode usar o lftp no modo de script. O comando a seguir espelhará o conteúdo de um diretório FTP remoto especificado no diretório local especificado e poderá ser colocado no trabalho cron:
Ele lida automaticamente com a recursão em diretórios e permite especificar o diretório inicial da origem remota para o qual baixar os dados.
fonte
Você pode usar 'curlftpfs - montar um host ftp como um diretório local' e, uma vez montado, você pode usar ferramentas de arquivo normais como 'cp -r'.
fonte
curlftpfs
tem grandes problemas de desempenho agora a menos que você rebaixarlibcurl3-gnutls
Verifique o comando wget abaixo para baixar dados do FTP recursivamente.
-r
: É para download recursivo.-np
: É para nenhum pai ascendente.-nH
: Destina-se a desativar a criação de diretório com o mesmo nome de URL, ou seja, abc.xyz.com--cut-dirs
: É para ignorar o número de diretórios pai. O valor desta opção será diferente para o seu comando.Você pode verificar executando o comando acima.
fonte
Use -m em vez de -r, devido à profundidade da recursão.
http://www.editcorp.com/Personal/Lars_Appel/wget/wget_2.html#SEC11
fonte
Deve funcionar, tente:
fonte
Usar:
e espelhará todos os arquivos e pastas.
fonte
Essa é a sintaxe correta. Não sei por que você não está obtendo os resultados esperados.
Como sempre, há mais de uma maneira de fazê-lo. Experimente o ncftp, em particular o ncftpget
fonte
Eu posso entender se você está tentando despejar isso no cron ou algo assim, mas por que não simplesmente ftp no servidor com seu cliente normal e mget *? Esse pode ser um caminho mais rápido para o sucesso.
fonte
Eu acho que isso vai funcionar no seu caso:
fonte
Me deparei com a hospedagem do Windows com o nome de usuário como brinkster / nome de usuário, portanto, o wget geraria um erro se você usar a sintaxe:
Para superar isso, use
Eu tive que enfrentar isso com o Windows hosting @ brinkster.
fonte
wget --user username --password yourpassword ftp://example.com/ftpfiles/filename
fará o trabalho ou você poderá adicionar * em vez de digitar o nome do arquivo: faz com que o wget pense na porta que é inválida no seu caso.fonte