O comando wput é uma versão do wget — só que ele faz o contrário: em vez de downloads, o wput faz uploads de arquivos pro servidor FTP, com a mesma eficiência e simplicidade. Se você já usa o wget para agilizar os seus downloads, vale a pena conhecer e usar o wput para fazer os seus uploads.
Eu incluo o wput entre as ferramentas essenciais para quem trabalha com atualização de páginas na Internet — seja webdesigner ou programador web.
O wput é um cliente robusto para conexões FTP. Trabalha sem a necessidade de interação do usuário e pode rodar em background. Pode subir de um simples arquivo a diretórios inteiros pro servidor.
Se você tem problemas com a estabilidade de suas conexões, o wput foi feito pra você — ele tem suporte a retomada de downloads (resuming), ou seja, ele continua o trabalho, de onde parou.
Você pode, ainda, restringir a taxa de transferência dos arquivos, para evitar sobrecarga na sua rede. Ele é um excelente aplicativo para estar dentro de um script que transfira seus backups de um servidor a outro.
Como usar o wput
A sintaxe do comando é simples e intuitiva. Você deve informar os arquivos ou diretórios que serão enviados, nome do usuário ftp, sua senha, endereço do servidor e o diretório que irá receber os arquivos. Veja um exemplo da sintaxe:
wput arquivos_de_origem ftp://nome_de_usario:senha_de_usuario@meuservidor.com.br/diretorio_destino/
Vamos supor que eu deseje enviar os arquivos da pasta /var/www/html/
para a pasta /public_html
, pro servidor fordlandau.net
. Veja como fica:
wput /var/www/html/ ftp://a1308311:Grujz437@fordlandau.net/public_html/
Note que no exemplo acima, o nome do usuário é a1308311 e sua senha é Grujz437.
Faça um teste, para ver como funciona para você, alterando os nomes para aqueles que se adequam à sua situação.
Verbosidade
Embora eu use o wput para atualizar sites e transferir arquivos de backup, nem sempre sinto necessidade de conferir o que está sendo feito o tempo todo.
Deixar uma janela, em um canto da tela, em um dos monitores, mostrando o upload é uma boa opção. Neste caso, gosto de usar o parâmetro --less-verbose
, desta forma:
wput --less-verbose * ftp://a1308311:Grujz437@fordlandau.net/public_html/
Use os coringas
Note que o *
, no exemplo anterior, significa “todos os arquivos dentro do diretório atual”.
Você pode usar livremente os coringas. Se quiser subir apenas os arquivos PHP, use *.php
.
O comando admite a flexibilidade de transferir vários tipos de arquivos, assim:
wput *.php *.html *.css ./includes/*.php ftp://a1308311:Grujz437@fordlandau.net/public_html/
Pra quem já está acostumado a usar coringas, é simples assim.
Faça a transferência com mais discrição
Se você não deseja obter qualquer atualização visual do andamento dos uploads, pode usar a opção --quiet
e, ainda pode jogar o comando “pros bastidores”, com a opção &
, do Linux, ao final da linha de comando. Veja como:
wput --quiet * ftp://a1308311:Grujz437@fordlandau.net/public_html/ &
O wput tem uma opção melhor do que esta, com a opção --background
— que joga a execução “pros fundos” e grava os resultados no arquivo de log ./wputlog
, onde você pode verificar o que ocorreu (ou está ocorrendo) durante a transferência. Veja um exemplo:
wput --background * ftp://a1308311:Grujz437@fordlandau.net/public_html/
A qualquer momento você pode ler o arquivo de log da transferência:
less ./wputlog
Como retomar uploads incompletos
Você pode interromper o envio de arquivos a qualquer momento — basta teclar Ctrl + C — e retomar o trabalho no ponto em que ele parou, mais tarde.
O resuming é o comportamento padrão do wput. Contudo, se quiser, você pode pedir para ele começar o trabalho todo de novo. A opção --reupload
faz a transferência dos dados, mesmo que já tenham sido transferidos:
wput --reupload --less-verbose * ftp://a1308311:Grujz437@fordlandau.net/public_html/
Limite o uso de banda nos uploads
Para evitar “incomodar” outros usuários e aplicativos na rede, você pode limitar o consumo de banda do wput com a opção de comando --limit-rate
.
Se você quiser limitar o uso da banda para 14 mil bytes, pode usar o comando assim: --limit-rate=14K
. Veja um exemplo:
wput --limit-rate=15K --reupload --less-verbose * ftp://a1308311:Grujz437@fordlandau.net/public_html/
É importante frisar que o controle do uso da banda é feito pela média do uso. Ou seja, se você estabelecer um limite de 5K e, por conta da lentidão na rede, o wput só conseguir usar 2K, assim que lhe for possível, ele vai usar mais do que o limite de 5K, até restabelecer a média de 5K.
Portanto, não se espante com uma provável oscilação nestes números.
Parâmetros mais comuns de uso do wput
Agora que você já sabe usar o wput, caso precise, pode voltar a esta página e ir direto pra tabela abaixo, onde vou dar uma explicação geral e rápida sobre as opções do comando.
Opção longa | Opção curta | Descrição |
---|---|---|
–less-verbose | -nv | reduz “um pouco” o output do comando, mantendo o usuário informado do básico |
–quiet | -q | desliga a verbosidade do comando. A opção contrária é o --verbose ou -v |
–background | -b | opera “nos bastidores” e guarda as informações, por padrão, no arquivo ./wputlog |
–limit-rate | -l | as duas opções divergem ligeiramente no uso: --limit-rate=tx ou -l tx — em que tx é o valor da taxa acompanhado da unidade, que pode ser K (KiB) ou M (MiB) |
–reupload | -u | ignora a presença dos arquivos já transferidos e os reescreve. Refaz o upload. O padrão do wput, é a retomada no ponto em que parou na última vez e ignorar os arquivos que já foram transferidos e não sofreram alterações |
–tries | -t | em conexões instáveis, com constantes quedas, você pode especificar um número de tentativas para cada transferência malsucedida. O padrão do aplicativo é -1 , ou seja, número ilimitado de tentativas |
conclusão
Para concluir, eu gostaria de fazer uma nota rápida sobre optar ou não pelo uso da versão “longa” ou curta ao escrever o comando.
Para usar um exemplo, a opção curta de --less-verbose
é -nv
— ambas fazem a mesma coisa.
O uso da opção curta serve para nos poupar tempo, no dia a dia. Dentro de scripts, contudo, tenha em mente que você pode levar meses ou anos para querer alterar seus códigos. É por isto que usamos comentários nos nossos scripts. O uso da versão mais longa ajuda a entender melhor o código que você escreveu meses atrás.
No final das contas, o uso das versões mais longas tornam a linha de comando autoexplicativa, poupando seus scripts de linhas e linhas de comentários.
Por fim, recomendo dar uma olhada na página do manual do comando: man wput
— onde mais informações podem ser encontradas.
Como sempre, sinta-se à vontade para comentar e, se achar que o texto lhe foi útil, compartilhe o conhecimento com outras pessoas.
Divirta-se! 😉