Este pequeno artigo descreve como senti na pele as limitações de um servidor Windows 2000 em tarefas simples e como fiz para superá-las com a ajuda do Linux.
O shell script é bastante simples, mas mesmo assim explicarei
seu conteúdo.
Na segunda linha crio a variável "diret" com o conteúdo /home/ftp.
Você pode alterar para o diretório padrão de seu servidor FTP.
A terceira linha redireciona o comando "date" para dentro de um
arquivo chamado "name", dentro de /home/ftp. No entanto, a saída do
comando sofre as seguintes modificações: os espaços em branco são
substituídos por underlines e os ":" (dois pontos) são substituídos
pela letra "e". Isso ocorre porque se deixarmos os espaços em branco,
o Linux entenderá o nome que queremos dar (algo parecido com
Fri May 27 12:30:01 BRT 2005) como se estivéssemos querendo mover o
arquivo contido dentro da pasta para vários diretórios diferentes
(mv = mover ou renomear) e não executará a ação. A substituição dos
":" é necessária por causa do Windows, pois caracteres dessa natureza
não são aceitos em nomes de arquivos nesses sistemas.
O comando sed realiza essas modificações fazendo a leitura do
arquivo /sbin/regul.sed, que tem o seguinte conteúdo:
s/ /_/g
s/:/e/g
A quarta linha realiza o comando "find" dentro do diretório /home/ftp,
localizando o arquivo gerado pelo Windows e gravando o resultado da
busca no arquivo /home/ftp/result.
A quinta linha cria a variável "finded", com o conteúdo do arquivo result.
A sexta linha afirma que se o conteúdo da variável finded for igual a
/home/ftp/nomedoarquivoenviadopelowindows, será executada a sétima linha,
que cria a variável realname, com o conteúdo do arquivo name (que por
sua vez possui a saída do comando date, modificado pelo comando sed).
A oitava linha executa o comando zip, zipando o arquivo enviado pelo
Windows e criando um arquivo cujo nome possui formato $realname.zip
(algo como Fri_May_27_12e30e01_BRT_2005.zip).
Na nona linha, temos um "senão" (else). Ou seja, se o conteúdo da
variável $finded não for exatamente igual a /home/ftp/nomedoarquivoenviadopelowindows, a décima linha será executada, enviando um e-mail para
gnu@veracruz.pr.gov.br, avisando que o backup deu errado (pelo amor
de Deus, quem for usar esse script, altere o endereço, ou minha caixa
de entrada vai estourar :) ). Esse ponto do script pode ser modificado de várias maneiras, tais como apenas criar um arquivo de log (echo o backup falhou > $diret/log), caso você não tenha um servidor de e-mail rodando.
A décima-primeira linha finaliza o bloco de instruções, enquanto as
linhas restantes destinam-se a apagar os arquivos desnecessários de
dentro do diretório /home/ftp.
Muito bem, impasse resolvido (moleza pro Linux, impossibilidade para o
Windows).
[1] Comentário enviado por sleck em 30/09/2005 - 13:01h
Ola, não desmerecendo nunhum pouco seu artigo, achei bem legal mesmo, só para ajudar a quem utiliza o windows, estou testando aqui uma programa de backup chamado Cobian Backup, free (melhor ainda) baixei no superdownloads, nas minhas tarefas ele funciona blz, faz copia para ftp tbm, vale apena testar este programa para tarefas de backup ..
[2] Comentário enviado por delete em 30/09/2005 - 17:36h
vc nao precisa conectar usando login anonimo ... vc poderia especificar o usuario no comandos.txt usando da seguinte forma
primeira linha do comandos.txt vc botaria:
user USUARIO SENHA
depois seguiria com o resto...
passei pelo mesmo sei problema... hehehe
abracos!
[3] Comentário enviado por gnu em 01/10/2005 - 00:49h
valeu mesmo povo.. A dica do companheiro Delete eu vi posteriormente (esse artigo foi republicado, devido aos prob técnicos que o site encontrou). A dica do sleck me parece muito boa mesmo para usuários iniciantes. É assim que evoluímos! Seja livre, use linux!
[5] Comentário enviado por gnu em 04/10/2005 - 15:04h
Pior que é mesmo. Atualmente, o script encontra-se muito mais desenvolvido, usando mailm para enviar os e-mails, e entraram mais alguns bancos no backup.. realmente ficou bastante confiável...
[6] Comentário enviado por carlos.oliveira em 11/06/2009 - 21:51h
Oi, pessoal. Já utilizo o Cobian há bastante tempo. Ele é Show. Agora, instalei no LINUX, pelo WINE, e funciona 100%.
Tenho vários trabalhos de backup rodando nele, que varre as máquinas de usuários, nas pastas determinadas, e faz backup incremental (somente arquivos alterados desde o último backup) para as pastas-clone num servidor de backup e também sobe os arquivos críticos via FTP para um servidor remoto. Não tem terror. É 100% funcional... Carlos Oliveira www.divulgacao.com.br
[7] Comentário enviado por djobix em 29/11/2009 - 21:41h
Muito bom e em linux seu método! no win existem muitas alternativas que são muito mais "fáceis" o Cobian, que foi citado , é uma das ótimas alternativas principalmente se outras pessoas precisarem modificar ou acessar algo... vc pode compactar arquivos e enviar é um programa muito bom.