Usando o wget para baixar arquivos de um servidor FTP com senha

ftp

Todos que conhecem o wget sabem o quanto ele pode ser útil, um canivete suíço na hora de transferir arquivos. E mais uma vez ele foi perfeito para resolver o meu problema.

Normalmente faço o download dos arquivos que preciso assim:

> wget http://um_site_qualquer.com/ebooks/exemplo_de_arquivo.pdf

Caso precise de vários arquivos utilizo a opção -r (–recursive), assim o wget vai trabalhar de forma recursiva:

> wget -r http://um_site_qualquer.com/ebooks/

E se for preciso recomeçar de onde parou é só utilizar a opção -c (–continue):

> wget -c http://um_site_qualquer.com/ebooks/

Agora imagine ter que baixar ou até mesmo mover um site inteito!
Com o parâmetro -m (–mirror) isso é possível, essa opção é um atalho para um grupo de opções tais como: -N –timestamping, -r –recursive, -l inf e –no-remove-listing. Essas opções ativam a recursão, o modo time-stamping, definem a recursão em nível infinito e mantem as listas de diretórios do FTP.

> wget -m ftp://um_site_qualquer.com/htdocs

Agora vem o “pulo do gato”, normalmente esse tipo de acesso, exige usuário e senha. Mas nada que um “man wget” não resolva né.

Na sessão de opções do HTTP temos:

--http-user=USER        Define o usuário do http
--http-password=PASS    Define a senha do http

Na sessão de opções do FTP temos:

--ftp-user=USER         Define o usuário do ftp
--ftp-password=PASS     Define a senha do ftp

E na sessão geral temos os parâmetros que podem ser usados para os dois casos:

--user=USER             Define o usuário do ftp e http
--password=PASS         Define a senha do ftp e http

Um modo mais enxuto de escrever é esse aqui:

> wget -m ftp://USER:PASS@ftp.um_site_qualquer.com

Por fim, caso não queira exibir a senha na linha do comando basta fazer assim:

> wget -m ftp://USER@ftp.um_site_qualquer.com --ask-password

Espero que tenham gostado e que ajuda a vocês como me ajudou. 😉