Ter um trabalho rsync concluído após fechar a conexão SSH

11

Estou transferindo uma grande quantidade de arquivos de um computador para outro usando rsync . Eu estou fazendo isso por SSHing no computador de origem e executando um comando como este:

sudo rsync ssh --rsync-path="sudo rsync" source_dir [email protected]:dest_dir .

Mesmo se eu adicionar nohup antes deste comando, sempre que eu fechar a janela do terminal da qual eu fiz SSH, a conexão será fechada.

Como posso fazer isso para que minha transferência de arquivos continue quando eu fechar minha conexão SSH?

    
por jaynp 17.03.2013 / 02:49

2 respostas

14

O motivo pelo qual nohup não está ajudando você é porque o programa funciona com arquivos IO padrão.

Aqui está um trecho da Página do Wiki para nohup:

Note - Nohupping backgrounded jobs is typically used to avoid terminating them when logging off from a remote SSH session. A different issue that often arises in this situation is that ssh is refusing to log off ("hangs"), since it refuses to lose any data from/to the background job(s). This problem can also be overcome by redirecting all three I/O streams:

nohup ./myprogram > foo.out 2> foo.err < /dev/null & Also note that a closing SSH session does not always send a HUP signal to depending processes. Among others, this depends on whether a pseudo-terminal was allocated or not.

Você pode usar screen para isso.

Basta criar uma sessão de tela com: screen -S rsync então, você desanexará sua tela com CTRL + A d

E você pode se desconectar do SSH

    
por 17.03.2013 / 03:05
4

Esse comando de tela é bom, mas não funcionou exatamente para as minhas necessidades.

Isso funcionou muito melhor:

nohup rsync -va --delete ###.###.###.###:/var/www/sites/ /var/www/sites < /dev/null &
    
por 18.11.2014 / 01:46

Tags