quarta-feira, 2 de abril de 2014

Acessando FTP pela linha de comando

Se você não tem um ambiente gráfico no momento e precisa acessar um FTP, é simples.

$ ftp endereço_do_ftp

Por exemplo, para conectar no servidor 10.50.0.32 eu uso:

$ ftp 10.50.0.32
Connected to 10.50.0.32.
220 ProFTPD 1.3.3a Server (FTP Fundacao Padre Anchieta) [200.136.27.145]
Name (10.50.0.32:ricardo): ricardoolonca

Se for acesso anônimo, use o usuário "anonymous". Aqui eu usei o meu  usuário.

331 Password required for ricardoolonca
Password:

Digite a senha. Para "anonymous" use um endereço de e-mail qualquer (nem precisa ser válido).

230 User ricardoolonca logged in
Remote system type is UNIX.
Using binary mode to transfer files.

Para ver os arquivo do FTP use "ls"

>ls
500 Illegal PORT command
ftp: bind: Address already in use

Se a mensagem acima aparecer, então algum sistema de segurança está impedindo o acesso via FTP Ativo. Vamos usar o modo passivo. 

ftp> passive
Passive mode on.

Vamos executar novamente o comando "ls".

ftp> ls
227 Entering Passive Mode (200,136,27,145,250,247).
150 Opening ASCII mode data connection for file list
drwxr-xr-x   2 ricardoolonca ricardoolonca               96 Feb    1  2013 bin
drwx------    2 ricardoolonca ricardoolonca             160 Jul   26   2013 Dropbox
-rw-r--r--     1 ricardoolonca ricardoolonca 5198323960 Mar  5  20:35 Full_20140305.tar.bz2
-rw-r--r--     1 ricardoolonca ricardoolonca 2000231846 Apr   1  13:51 Full20140401.tar.bz2
drwxr-xr-x   3 ricardoolonca ricardoolonca                72 Oct 28   2012 Justica Eleitoral
drwxr-xr-x   4 ricardoolonca ricardoolonca              104 Jun 10   2013 Programas
drwxr-xr-x   3 ricardoolonca ricardoolonca                72 Oct 28  04:00 Spark
drwxr-xr-x   2 ricardoolonca ricardoolonca                48 Feb 16  11:49 teste
drwxr-xr-x   4 ricardoolonca ricardoolonca              128 Apr  2   16:46 tmp
drwxr-xr-x   3 ricardoolonca ricardoolonca                72 Jan 28   04:00 tor-browser_pt-PT
226 Transfer complete

Para entrar em uma pasta use "cd".

ftp> cd tmp
250 CWD command successful
ftp> ls
227 Entering Passive Mode (200,136,27,145,235,116).
150 Opening ASCII mode data connection for file list
-rw-r--r--   1 ricardoolonca ricardoolonca       182 Apr  2 16:46 20140401.txt
drwxr-xr-x   2 ricardoolonca ricardoolonca       48 Apr  2 16:44 cmais
drwxr-xr-x   2 ricardoolonca ricardoolonca       80 Jun 10  2013 cmais2
226 Transfer complete

Para verificar a pasta local (da tua máquina, não do servidoir FTP) use "lcd".

ftp> lcd
Local directory now /home/ricardo

Para mudar a pasta local use "lcd" passando a pasta como parâmetro.

ftp> lcd tmp
Local directory now /home/ricardo/tmp

Para baixar um arquivo use "get", ou "mget" para vários arquivos.

ftp> get 20140401.txt
local: 20140401.txt remote: 20140401.txt
227 Entering Passive Mode (200,136,27,145,235,51).
150 Opening BINARY mode data connection for 20140401.txt (182 bytes)
226 Transfer complete
182 bytes received in 0.00 secs (1468.9 kB/s)

Para enviar um arquivo para o FTP use "put", ou "mput" para enviar vários arquivos.

ftp> mput *.txt* 
mput 20140401.txt? y
227 Entering Passive Mode (200,136,27,145,242,217).
150 Opening BINARY mode data connection for 20140401.txt
226 Transfer complete
182 bytes sent in 0.00 secs (3863.8 kB/s)
mput 20140401.txt~? y
227 Entering Passive Mode (200,136,27,145,245,154).
150 Opening BINARY mode data connection for 20140401.txt~
226 Transfer complete
127 bytes sent in 0.04 secs (3.1 kB/s)
mput 20140402.txt? y
227 Entering Passive Mode (200,136,27,145,238,232).
150 Opening BINARY mode data connection for 20140402.txt
226 Transfer complete
238 bytes sent in 0.00 secs (12912.3 kB/s)
mput 20140402.txt~? y
227 Entering Passive Mode (200,136,27,145,253,37).
150 Opening BINARY mode data connection for 20140402.txt~
226 Transfer complete
205 bytes sent in 0.00 secs (4085.6 kB/s)

Se for transferir arquivos binários execute primeiro "binary".

ftp> binary
200 Type set to I

Para mais opções, digite "help".

ftp> help
Commands may be abbreviated.  Commands are:

! dir mdelete qc site
$ disconnect mdir sendport size
account exit mget put status
append form mkdir pwd struct
ascii get mls quit system
bell glob mode quote sunique
binary hash modtime recv tenex
bye help mput reget tick
case idle newer rstatus trace
cd image nmap rhelp type
cdup ipany nlist rename user
chmod ipv4 ntrans reset umask
close ipv6 open restart verbose
cr lcd prompt rmdir ?
delete ls passive runique
debug macdef proxy send

Para sair do ftp digite "bye".

ftp> bye
221 Goodbye.