Я пытаюсь передать большой набор данных (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, потому что в этот момент все, что я пытаюсь сделать, было бы догадкой, идеи были бы оценены.
См. Также http://stackoverflow.com/q/15209794/2908724 – bishop
На машине B, 'echo $ TMOUT'. – bishop
Спасибо, я могу удалить свой вопрос, поскольку он дублирует вопрос, который вы связали; однако, я думаю, что мой содержит немного больше объяснений. Я не знал о переменной $ TMOUT - она, похоже, не установлена на машине B. Есть ли способ установить ее на 48 часов, возможно, это поможет. – nak3c