Como esperar por 3 mints se o n / w foi desconectado enquanto copiava no Rsync sem falhar usando o script perl?

0

Tenho que transferir de 2 a 3 GB usando o Rsync. Tudo está funcionando bem, mas minha rede foi desconectada algumas vezes e todo o processo falhou. Eu quero repeti-lo para a rede para cada 3 mints, e uma vez se a rede voltou a cópia deve continuar. Estou planejando escrevê-lo no script Perl.

    
por Sabarish 13.10.2014 / 09:23

1 resposta

0

Não vejo por que isso precisa ter algo a ver com o Perl. Quero dizer, você só quer continuar executando o rsync - um aplicativo de linha de comando - se ele falhar. Não seria algo assim suficiente?

while ! rsync -a /mydir myuser@remotehost:/other_dir; do
    sleep 180;
done

Explicação

Isso continuará tentando executar o comando rsync até que seja concluído com êxito (com um código de saída 0). Em cada iteração, ele aguardará 180 segundos antes de continuar. Este é todo o script bash, btw, e será executado sem modificações no seu terminal.

Em perl

Eu nunca escrevi Perl, mas desde que você solicitou uma versão em perl, eu juntei isso usando o Google e o interpretador Perl em poucos minutos ...

my $rsync = 'rsync -a /mydir myuser@remotehost:/other_dir';

while ( system($rsync) == -1 ) { 
    sleep 180;
}

Salvar como sync.pl e executar com perl sync.pl . Claro, substitua o diretório e nomes de host por valores reais.

    
por 13.10.2014 / 09:27