[Rio-pm] Cópia de arquivos entre computadores...

Otávio Fernandes otaviof em gmail.com
Terça Julho 14 19:51:54 PDT 2009


2009/7/14 Ailton Zacarias <ailtonzsilva em yahoo.com.br>:
> Boa tarde,
>
> Faz algum tempo que fiz um script p/ copiar arquivos conforme uma lista p/
> uma determinada pasta no mesmo local do script. Agora preciso fazer com que
> os mesmos arquivos que estou copiando p/ esta pasta seja copiado tbm p/ uma
> outra pasta em outro computador em minha rede já pesquisei na net porem não
> consegui entender como faço isso... alguem pode me ajudar.
>
> Segue código e modelo de Arquivo de Listagem:
>
> [Código]
>
> #!c:/Perl/perl.exe -w
>
> use strict;
> use warnings;
>
> my $Lista = 'Arquivos.txt';
> my $Caminho = 'BKP';
>
> BKP($Lista,$Caminho);
>
> sub BKP{
> # ARQV, DESTINO
>     use File::Copy;
>     open(my $file, q{<}, $_[0]);
>     foreach my $arquivo ( <$file> ) {
>        #Remove o último caractere apenas se for igual a $/ "Separador de
> regsitro"
>        chomp($arquivo);
>        # Verifica se o arquivo existe
>        if (-e $arquivo){
>            mkdir $Caminho;
>            copy($arquivo,$_[1]."/".DataHora()."_".$arquivo) or die "Copy
> failed: $!";
>        }
>     }
>     }
>
> # Criar layout de data
> sub DataHora{
>     my($dd,$mm,$yy,$day,$hh,$nn) = (localtime)[3,4,5,6,2,1];
>     my $today =  join '', map sprintf("%02d", $_),($yy%100,$mm+1,$dd,);
>     my $hr = join '', map sprintf("%02d", $_),($hh,$nn);
>
>     # "Vasio" = Data e hora | "1" Apenas Data
>     my $data = $_[0] ? $today:$today.'_'.$hr;
>
>     my $datahora = $data;
>
>     return ($datahora);
>     }
>
>
>
> -------------------------------------------------------------------------------------------------
>
>
> [Arquivo de Listagem]
>
> dbDados.mdb
> dbContato.mdb
>
>
>
> Obrigado!
>
> _______________________________________________
> Rio-pm mailing list
> Rio-pm em pm.org
> http://mail.pm.org/mailman/listinfo/rio-pm

Olá Ailton,

No seu lugar eu não utilizaria um script caseiro para fazer esta
tarefa, pensaria em algo como um deployment manager, algo parecido com
o que o Capistrano faz. Se estivéssemos em um ambiente unix-like eu
lhe recomendaria o Rsync (ele também pode ser utilizado em Win32,
porem dá bastante trabalho), Capistrano, Puppet, CFEngine, entre
outros.

P.S.: Meus dois centavos.

um abraço,

-- 
Otávio Fernandes <otaviof at gmail.com>
http://otaviof.blogspot.com/


Mais detalhes sobre a lista de discussão Rio-pm