O protocolo de transferência de arquivos (FTP) é um protocolo de rede usado para copiar um arquivo de um computador para outro através da Internet ou LAN. Ele segue uma arquitetura cliente-servidor que utiliza conexões de controle e dados diferentes entre o cliente e o servidor. A porta padrão para ftp é 21.
ftp: protocolo de transferência de arquivos na Internet
Use a seguinte sintaxe para se conectar e transferir arquivos para/de um site de rede remota:
ftp ftp.example.com ftp 1.2.3.4 ftp user@ftp.example.com
Você deve conhecer o nome de usuário e a senha para autenticação de senha baseada em usuário. Caso seja com acesso de usuário anônimo use ftp como nome de usuário e senha. Neste exemplo, você está se conectando ao ftp.freebsd.org com acesso ao usuário anônimo (abra o terminal e digite o seguinte comando):
ftp ftp.freebsd.org
Deve retornar algo semelhante a isto:
Trying 87.51.34.132... Connected to ftp.freebsd.org. 220 ftp.beastie.tdk.net FTP server (Version 6.00LS) ready. Name (ftp.freebsd.org:vivek): ftp 331 Guest login ok, send your email address as password. Password: 230 Guest login ok, access restrictions apply. Remote system type is UNIX. Using binary mode to transfer files. ftp>
Quando você insere seu próprio nome de usuário e senha para o servidor ftp.example.com, ele retorna o prompt:
ftp>
Você precisa digitar todos os comandos dentro do prompt ftp>. Por exemplo, caso você quisesse acessar/manipular um banco de dados precisaria fazer isso no prompt mysql>.
Tarefas: Lista de arquivos atuais
Digite o comando ls no prompt:
ftp> ls
Deve retornar algo semelhante a isto:
229 Entering Extended Passive Mode (|||60692|) 150 Opening ASCII mode data connection for '/bin/ls'. total 10 drwxrwxr-x 2 0 5 512 Jul 19 2007 .snap drwx------ 2 0 0 2048 Jul 19 2007 lost+found drwxr-xr-x 3 1006 1006 512 Sep 21 2009 pub drwxr-xr-x 3 1006 1006 512 Jun 5 2007 sup drwxr-xr-x 4 1006 0 512 Sep 18 2009 www 226 Transfer complete. ftp>
Acima é listado os nomes dos arquivos no diretório remoto atual (o último nome é nome do arquivo ou do diretório).
Tarefas: Alterar o Diretório
Para alterar o diretório na máquina remota, use o comando cd:
ftp> cd dirName
Para mudar para o diretório pub, digite:
ftp> cd pub
Deve retornar algo parecido com isto:
250 CWD command successful.
Tarefas: Baixar/Copiar arquivo
Para copiar um arquivo de cada vez do servidor remoto para o sistema local utilize o comando get:
get fileName get fileName newFileName
Neste exemplo, baixe o arquivo resume.pdf no diretório remoto atual para (ou em cima) de um arquivo com o mesmo nome, resume.pdf, no seu diretório local:
ftp> get resume.pdf
Deve retornar algo parecido com isto:
local: resume.pdf remote: resume.pdf 229 Entering Extended Passive Mode (|||55093|) 150 Opening BINARY mode data connection for 'resume.pdf' (53077 bytes). 100% |*********************************************************************| 53077 12.58 KiB/s 00:00 ETA 226 Transfer complete. 53077 bytes received in 00:04 (12.57 KiB/s)
Neste exemplo, copie o arquivo data.tar.gz no diretório remoto atual para (ou em cima) um arquivo chamado backup.tar.gz no seu diretório local:
ftp> get data.tar.gz backup.tar.gz
Alterando Diretório Local
Para alterar o diretório em seu sistema local, digite:
ftp> lcd /path/to/new/dir ftp> lcd /tmp
Deve retornar algo semelhante a isto:
Local directory now: /tmp
Imprimir diretório local:
ftp> lpwd
Deve retornar algo semelhante a isto:
/tmp
O comando lpwd imprime o diretório de download atual para sistemas locais. No entanto, para descobrir o caminho do diretório atual no servidor ftp remoto, digite:
ftp> pwd
Deve retornar algo semelhante a isto:
Remote directory: /pub/FreeBSD
Tarefas: Baixando Vários Arquivos
Você precisa usar o comando mget da seguinte forma para copiar vários arquivos do servidor ftp remoto para o sistema local. Você pode ser solicitado para uma resposta de sim/não (Y / N) antes de transferir cada arquivo (você pode desativar o prompt passando a opção -i para o cliente ftp). Para baixar todos os arquivos, digite:
ftp> mget *
Para baixar todos os arquivos perl (que terminam com extensão .pl), digite:
ftp> mget *.pl
Ativar/Desativar Prompting Interativo
O prompt de comando ftp define a solicitação interativa; “On” permite a solicitação para que você possa verificar cada passo dos múltiplos comandos, “Off” permite que os comandos atuem sem impedimento:
ftp> prompt on ftp> mput *.php ftp> prompt off ftp> mget *.py
Tarefas: Apagar Arquivos
Para excluir um arquivo no diretório remoto atual use o comando delete:
ftp> delete fileName ftp> delete output.jpg
Tarefas: Carregar um arquivo
Para copiar um arquivo de cada vez do sistema local para o servidor remoto, digite:
ftp> put fileName
Neste exemplo, carregue logo.jpg, digite:
ftp> put logo.jpg
Tarefas: Carregar vários arquivos
Para copiar vários arquivos do sistema local para o servidor ftp remoto use o comando mput. Novamente, você pode ser solicitado para uma resposta de sim/não (Y / N) antes de transferir cada arquivo. Neste exemplo, faça o upload de todos os arquivos do sistema atual:
ftp> mput * ftp> mput *.pl
Tarefas: Crie um diretório
Para criar um novo diretório, execute o comando:
ftp> mkdir dirName ftp> mkdir scripts ftp> cd scripts ftp> pwd
Tarefas: Apagar um diretório
Para remover um diretório, execute o comando:
ftp> rmdir dirName ftp> rmdir images ftp> ls
Tarefas: Definir o modo de transferência de arquivos
Para configurar o modo de transferência de arquivos para ASCII, digite:
ftp> ascii
Observe que ascii é o padrão, bom para arquivos de texto. Para configurar o modo de transferência de arquivo para binário, digite:
ftp> binary
O modo binário é recomendado para quase todos os tipos de arquivos, incluindo imagens, arquivos zip e muito mais. O modo binário oferece menos chance de um erro de transmissão.
Tarefas: Conecte-se a outro servidor de FTP
Para abrir uma conexão com outro servidor ftp, digite:
ftp> open ftp.nixcraft.net.in
O comando acima abre uma nova conexão FTP com ftp.nixcraft.net.in. Você deve fornecer um nome de usuário e senha para uma conta ftp.nixcraft.net.in. No entanto, um nome de usuário e senha podem ser ignorados para uma conexão FTP anônima.
Tarefas: Saindo da sessão FTP
Digite quit ou bye, pressione enter:
ftp> quit
Ou
ftp> bye
Deve retornar um comando parecido com isto:
221 Goodbye.
Como faço para obter mais informações sobre os comandos do FTP?
Escreva ? ou help para obter mais informações sobre os comandos de FTP:
ftp> ? ftp> help
Deve retornar um comando parecido com isto:
Commands may be abbreviated. Commands are: ! delete idle mode pmlsd reset system $ dir image modtime preserve restart tenex account disconnect lcd more progress rhelp throttle append edit less mput prompt rmdir trace ascii epsv4 lpage mreget proxy rstatus type bell exit lpwd msend put runique umask binary features ls newer pwd send unset bye fget macdef nlist quit sendport usage case form mdelete nmap quote set user cd ftp mdir ntrans rate site verbose cdup gate mget open rcvbuf size xferbuf chmod get mkdir page recv sndbuf ? close glob mls passive reget status cr hash mlsd pdir remopts struct debug help mlst pls rename sunique
Para obter uma breve descrição sobre cada comando, digite:
ftp> help commandName ftp> help chmod
Deve retornar algo parecido com isto:
chmod change file permissions of remote file
Digite:
ftp> help ls
Deve retornar algo parecido com isto:
ls list contents of remote path
FTP Através de um Navegador
Se você não deseja digitar os comandos, use um navegador como Safari, Firefox e digite o seguinte:
ftp://ftpUserName@ftp.nixcraft.net.in ftp://ftp.freebsd.org/ ftp://ftp@ftp.freebsd.org/ ftp://userName:Password@ftp.nixcraft.net.in/ ftp://ftp:ftp@ftp.freebsd.org/
Deve retornar algo parecido com isto:
Hoje você conferiu uma lista com os principais comandos FTP Linux/Unix. Obrigado pela leitura, nos vemos na próxima semana.