Ubuntu: Instale e configure um servidor FTP com apenas uma linha de comando…

Deixemos os nossos preconceitos de lado… a linha de comando torna algumas tarefas bem mais fáceis (inclusive no Windows). Até por que você sempre pode copiar um comando daqui e colar aí, no seu terminal.
Aqui, vamos ensinar a instalar um servidor FTP muito usado, pela sua simplicidade e por ser leve e rápido: o PROFTP.

  • Abra um terminal com Ctrl + T
  • Dentro do terminal execute o comando:
    sudo apt-get install proftpd-basic
  • Após o download dos pacotes de instalação, o sistema vai te pedir para escolher o uso do inetd ou uma instalação autônoma. O próprio quadro explica a que casos cada opção se adequa melhor. Eu sempre opto pela segunda.
    Opções de configuração do proftpd-basic
    Opções de configuração do proftpd-basic
  • A partir de agora, qualquer computador, dentro da sua rede, pode acessar o seu via ftp.
    Leia aqui sobre como descobrir o endereço IP da sua máquina.
    Agora que você já tem um servidor FTP, pode achar interessante conectar o seu PC a outro via cabo crossover para transferir arquivos.

Como conectar 2 computadores com um cabo crossover – usando o Ubuntu 12.10

Se o que você precisa é fazer transferência rápida de um grande volume de dados entre 2 computadores, usar uma conexão via cabo crossover pode ser a melhor solução.
Comece conectando o cabo aos dois computadores. Não é necessário desligar ou reiniciar nada. Apenas certifique-se de ter privilégios administrativos nas duas máquinas, pois será necessário para configurar a rede.
Feito isto, siga os passos:

  • Clique, com o botão direito do mouse sobre o ícone do gerenciador de redes, no canto superior direito, na barra de status e, em seguida, dê um clique normal sobre a opção “Editar conexões…” (costuma ser uma das últimas);
  • Editar conexões...
    Painel Editar conexões
  • No painel de configurações da rede, selecione a aba “Com fio” e digite o nome da sua nova conexão dentro do campo “Nome da conexão”. Depois disto, desative a opção de conectar automaticamente e disponibilize a conexão a todos os usuários;
  • Desative a conexão automática e ative a opção de compartilhar com outros usuários.
    Desative a conexão automática e ative a opção de compartilhar com outros usuários.
  • Vá para a aba “Configurações IPv4”. Em “Método”, selecione a opção “Manual”;
  • Logo abaixo, clique no botão “Adicionar” e forneça os endereços pra sua rede. No meu caso, eu optei pelos seguintes valores:
    Endereço (IP): 192.168.2.24;
    Máscara de rede: 255.255.255.0;
    Gateway: 192.168.168.2.24.
  • Configuração dos endereços IP
    Configuração dos endereços IP
  • Clique em “Salvar”;
  • Repita este processo no outro computador. A única diferença é o Endereço IP que, no segundo computador, usei 192.168.2.23. Todas as outras configurações devem ser idênticas.
  • Feito isto, conecte-se à sua nova rede, através do ícone Gerenciador de redes.
  • Não esqueça que, enquanto as máquinas estiverem conectadas entre si, você ficará sem a conexão com a Internet.

Use wput to send files through the network

You don’t have to open up your FTP client (whatever it is) to connect to the server when all you want is upload a single file or a bunch of directories.
Using wput is simple and very efficient when you want to do send files through FTP connections.
Ubuntu or Debian users can install wput using the apt-get command:

sudo apt-get install wput

Fedora users can do it with yum:

sudo yum install wput

And there’s a Windows version on sourceforge.
network connections

wput command syntax

To send all files from a local directory to the remote FTP server the syntax would be something like this:

wput *.* ftp://username:password@hostname/recipient-folder/

In the following examples I’ll assume my username is slinkydog and my password is dachshund. My server address would be toystoryfun.com (I didn’t check if it exists and it doesn’t matter. Use your own server names here). The recipient folder in the server will be called characters/.
This is the first example on how to send a single file through your FTP connection:

wput filename.txt ftp://slinkydog:dachshund@toystoryfun.com/characters/

How to deal with wput verbosity

You can reduce the verbosity, using --less-verbose option:

wput --less-verbose filename.txt ftp://slinkydog:dachshund@toystoryfun.com/characters/

You can use the option --verbose to increase the command output even more or the option quit to simply suppress verbosity.
I usually prefer to send wput to work in the background which sets my terminal free to run other stuffs. This is how to do it:

wput --background *.* ftp://slinkydog:dachshund@toystoryfun.com/characters/

If you wantto know what’s happening (or happened) during the transference just read the file ./wputlog:

less ./wputlog

How to limit the bandwidth usage while sending files with wput

The option --limit-rate can be used to limit the average use of your network bandwidth. In the following example I’ll limit it to 500 K:

wput --limit-rate=500K --less-verbose about.php index.php styles.css ftp://slinkydog:dachshund@toystoryfun.com/characters/

In the example above I limited the average rate of bandwidth usage to 500 K, decreased verbosity level and told wput to transfer the files:

  • about.php
  • index.php
  • styles.css

You can use wildcards like *.php if you want.

How to resume incomplete uploads with wput

Wput resumes incomplete transfers by default. So you don’t need to do anything special here.
Though you can force it to do it all again by telling the program to reupload:

wput --reupload --less-verbose --limit-rate=1M *.php *.css *.html ftp://slinkydog:dachshund@toystoryfun.com/characters/

Take a look at the man page of the command to see more options:

man wput

… and have fun!