Existe uma maneira de pausar um processo scp já em execução?

3

Estou copiando um arquivo grande usando scp e percebi que o destino pode não ter espaço suficiente para ser concluído. Existe uma maneira que eu possa fazer uma pausa, possivelmente por várias horas, e retomar mais tarde? Além disso, se ele falhar ( no space left on device ), poderei retomar o processo assim que tiver limpado algum espaço?

(Observe que scp já está em execução; soluções como o uso de um programa diferente não funcionarão.)

    
por Blacklight Shining 09.11.2012 / 22:38

1 resposta

6

Você pode pausar um processo com SIGSTOP e depois continuar com SIGCONT. (Veja kill -l para uma lista de sinais e use ps para obter o ID do processo).

No entanto, há uma boa chance de que isso não funcione. Por exemplo. se você tiver um roteador entre sua origem e destino que perceba e 'limpe' uma conexão inativa. A maioria dos roteadores SOHO parece fazer isso porque limpar as conexões significa menos uso de memória. (E assim eles podem construir roteadores mais baratos).

Se isso acontecer, você precisará copiar novamente com o scp ou usar o rsync.

O rsync tem a vantagem de comparar arquivos já existentes e não copiar dados desnecessariamente. No seu caso, ele deve detectar um arquivo já existente e parcialmente carregado e só fazer o upload do restante do arquivo

A sintaxe seria rsync -v -e ssh /home/my_file [email protected]:~

-v para verbose. -e "ssh options" para especificar o ssh como shell remoto.

Se os dados forem compressíveis, talvez você queira adicionar -z para compactar os dados.

    
por 09.11.2012 / 22:53

Tags