Como acessar seus arquivos no servidor FTP com net2ftp

O net2ftp é um webapp cliente FTP que possibilita às pessoas acessar os arquivos no servidor, do navegador, sem a necessidade de instalar qualquer aplicativo extra.
Se você acessar o site oficial do net2ftp, vai ver um formulário, pedindo o endereço do servidor FTP que você deseja acessar, nome de usuário e senha — você pode acessar qualquer servidor do mundo, desde você tenha uma conta lá.
Captura de tela do net2ftp
A idéia, aqui, é que você instale o software do net2ftp (Ei! É grátis!) no seu próprio servidor FTP, em casa ou na empresa, para tornar o acesso mais rápido.
Qualquer dispositivo que possa navegar na Internet (tablet, smartphone, smartTV, PlayStation etc.) poderá acessar os arquivos do seu servidor.
Do lado do servidor, você precisa de:

  • Um servidor web Apache.
  • Um servidor FTP pronto e rodando.
  • Um pouco mais do que 7.5 Mb de espaço em disco.
  • MySQL é opcional — só é necessário pra quem tem o interesse em fazer logging de atividades e estabelecer limites diários de downloads a usuários.

Ao final deste texto, há alguns links para artigos que podem te ensinar a instalar fácil um servidor Apache e FTP, caso você ainda não tenha um.

Como baixar e instalar o net2ftp

O aplicativo é escrito em PHP e usa (opcionalmente) banco de dados MySQL.
De código aberto, você pode fazer o download completo a partir do site oficial:
http://www.net2ftp.com/homepage/download.html
Feito o download (da versão completa Full), descompacte o arquivo:

unzip net2ftp_v1.0.zip

“Tecnicamente”, você não instala o net2ftp, uma vez que o conjunto de scripts que compõem a solução, já vem pronto para funcionar — basta pôr tudo no lugar certo e dar permissão de acesso às pessoas.
Após descomprimir o arquivo ZIP baixado, entre no novo diretório criado.

cd net2ftp_v1.05/

Se você pretende copiar e colar os comandos acima, certifique-se antes se o nome e a versão presentes no seu sistema correspondem ao que se encontra descrito aqui.



Em seguida, copia o conteúdo da pasta files_to_upload para dentro do diretório, no seu servidor Apache, em que o net2ftp será executado. No meu caso, é o seguinte:

sudo cp -rv files_to_upload/ /var/www/html/net2ftp

Se você quer fazer upload para um servidor remoto, veja como usar o comando wput, para isto.
Altere as permissões da pasta temp:

sudo chmod 777 /var/home/www/html/net2ftp/temp/

Depois de copiados os arquivos, basta acessar o net2ftp:

http://192.168.254.20/net2ftp/

Tela inicial do net2ftp
Clique para ampliar.

Uma vez logado ao servidor FTP, através do cliente web, net2ftp, é possível baixar e enviar arquivos ao servidor.
visão do net2ftp de dentro do navegador.
Clique para ampliar.

Esta instalação já pode ser acessada de qualquer dispositivo da sua casa, que tenha um navegador básico: smartphone, tablet, smart TV etc.

O comando wput em 5 exemplos

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.
feat rede network-grayEu 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! 😉

Copie arquivos com o rsync

Vou mostrar, com alguns exemplos práticos, como o uso do rsync pode ajudar a manter o conteúdo de 2 diretórios (pastas) separados sincronizado – mesmo que estejam em computadores diferentes.
Comando rsync copia arquivos
O comando rsync faz transferências de arquivos entre máquinas, de maneira simplificada e automática e… você nem precisa ter privilégios administrativos para isto.

Alguns dos recursos do Rsync

  • é eficiente para copiar e sincronizar arquivos entre computadores remotos
  • comparado com outros programas, é mais rápido do que o scp – o rsync usa um protocolo que lhe permite atualizar apenas os arquivos que sofreram mudanças
  • consome menos banda, uma vez que só trabalha em cima das atualizações necessárias e usa compressão para transferir dados

Instalação do rsync

Até onde sei, o comando vem instalado por padrão nas várias distro Linux.
Usuários Windows podem fazer o download do rsync aqui.
Usuários do Redhat ou do SuSE, podem instalar o rsync com o seguinte comando:

sudo yum install rsync

Usuários Debian e Ubuntu, podem usar o apt-get:

sudo apt-get install rsync

Sintaxe do comando rsync

Basicamente, você vai rodar o rsync com algumas opções, indicar a origem e o destino da sincronização:

rsync options #origem #destino

Daqui pra frente veremos outros exemplos práticos com o comando rsync.

Como sincronizar dois diretórios locais com o rsync

Vamos usar estes dois como exemplo:

  • /home/Documentos, como origem e
  • /home/backup/Documentos, como destino.

Vou mostrar como copiar a sincronizar recursivamente os diretórios:

rsync -vhr /home/Documentos /home/backup

o comando vai criar, se não houver, uma pasta chamada /home/backup/Documentos e copiar para dentro dela todo o conteúdo da outra pasta. Ao final do processo deverá retornar um relatório semelhante a este:

sent 707.32M bytes  received 2.35K bytes  2.92M bytes/sec
total size is 827.60M  speedup is 1.17

Ao repetir o comando, o rsync irá comparar os arquivos em busca de diferenças, por que ele só irá atualizar os arquivos que foram modificados.

OPÇÕES COMUNS DO RSYNC
  • -v — ativa a verbosidade do comando, pra você poder acompanhar o que está acontecendo durante sua execução;
  • -r — ativa a recursividade, ou seja, copia subdiretórios também;
  • -h — human readable exibe as informações da execução do comando em um formato mais legível, convertendo valores de bytes para mega ou gigabytes onde for necessário para reduzir os tamanhos dos números e tornar o texto mais fácil de ler;
  • -z — comprime os dados, antes de transferir;
  • -a — liga o modo archive que permite a cópia recursiva de arquivos, preservando links simbólicos, permissões de arquivos e timestamps.

Como copiar e sincronizar um arquivo local via rsync

Neste exemplo, vamos sincronizar um único arquivo, em um computador local, entre dois diretórios diferentes:

rsync -zvh Docs/mysql_storage.html /backup/Docs/mysql_storage.html

obtendo como resultado:

mysql_storage.html
sent 1.68K bytes  received 31 bytes  3.43K bytes/sec
total size is 3.38K  speedup is 1.97

Como sincronizar um diretório local com um remoto via SSH

Chegamos a um dos pontos fortes do rsync.
No exemplo que segue, vou copiar os arquivos do diretório /home, no servidor remoto remoto.com.br para um diretório local /backup. O nome de usuário, no exemplo, é justincase:

rsync -avz -e ssh justincase@remoto.com.br:/home /backup

Faça o teste com os seus próprios valores e veja se funciona.