2017-02-06 15 views
0

Я пытаюсь передать большой набор данных (768 Gig) с одной удаленной машины на другую с помощью bash на ubuntu 16.04. Проблема, с которой я сталкиваюсь, заключается в том, что я использую rsync, и машина будет переноситься в течение нескольких часов, а затем выйти, когда соединение неизбежно будет прервано. Так что предположим, что Im на машине A, а удаленные серверы - машины B и C (все машины используют ubuntu 16.04). Я SSH к машине B и использовать эту команду:сломанная труба с удаленным rsync между двумя серверами

nohup rsync -P -r -e ssh /path/to/files/on/machine_B [email protected]_C:directory & 

к сведению, что у меня есть уполномоченный ключ настройки так не требуется никакого пароля между машинами B и C

Через несколько часов я получаю в поЬир файл:

sending incremental filelist 
file_1.bam 
90,310,583,648 100% 36.44MB/s 0:39:23 (xfr#4, to-chk=5/10) 
file_2.bam 
79,976,321,885 100% 93.25MB/s 0:13:37 (xfr#3, to-chk=6/10) 
file_3.bam 
88,958,959,616 88% 12.50MB/s 0:15:28 rsync error: unexplained error (code 129) at rsync.c(632) [sender=3.1.1] 
rsync: [sender] write error: Broken pipe (32) 

Я использовал nohup, потому что, хотя он продолжал работать, даже если бы была зависания. Я не пробовал sh -c, и я не пробовал запускать команду с машины A, потому что в этот момент все, что я пытаюсь сделать, было бы догадкой, идеи были бы оценены.

+0

См. Также http://stackoverflow.com/q/15209794/2908724 – bishop

+0

На машине B, 'echo $ TMOUT'. – bishop

+0

Спасибо, я могу удалить свой вопрос, поскольку он дублирует вопрос, который вы связали; однако, я думаю, что мой содержит немного больше объяснений. Я не знал о переменной $ TMOUT - она, похоже, не установлена ​​на машине B. Есть ли способ установить ее на 48 часов, возможно, это поможет. – nak3c

ответ

0

для тех, кто заинтересован, я также попытался запустить следующий сценарий с помощью команды поЬир на машине В.

сценария:

chomp(my @files = `ls /path/to/files/on/machineB/*`); 
foreach (@files) { system("scp $_ [email protected]:destination/"); } 

Я до сих пор получил укороченные файлы.

на данный момент появляется следующая команда будет работать:

nohup rsync -P --append -r -e ssh /path/to/files/on/machine_B [email protected]_C:directory & 

вы просто должны проверить файл поЬир сломанных ошибок трубы и повторно введите команду, если это необходимо.