Как скопировать Большие файлы на другом Сервере Linux, Независимом от TTY

Если бы Вы просто хотите вставить новую строку после pattern2 затем, это работало бы -

sed '/pattern2/s/$/\n/' file

[jaypal:~/Temp] cat file
some text
some text
some text pattern1
some text p
some text p 
some text p
some text pattern2
some text
some text

[jaypal:~/Temp] sed '/pattern2/s/$/\n/' file
some text
some text
some text pattern1
some text p
some text p 
some text p
some text pattern2

some text
some text

i\ для вставки. Это вставило бы before адрес. При необходимости в новой строке, Вы использовали бы \a который является append.

[jaypal:~/Temp] sed '/pattern2/ a\
' file
some text
some text
some text pattern1
some text p
some text p 
some text p
some text pattern2

some text
some text

Если Вы хотите добавить новую строку после своего/pattern2/и строк представления между ними, то можете быть Вами, может сделать что-то вроде этого -

[jaypal:~/Temp] sed -e '/pattern2/G' -ne '/pattern1/,/pattern2/p' file
some text pattern1
some text p
some text p 
some text p
some text pattern2

[jaypal:~/Temp] 

Аналогичное решение в awk -

[jaypal:~/Temp] cat file
some text
some text
some text pattern1
some text p
some text p 
some text p
some text pattern2
some text
some text

[jaypal:~/Temp] awk '/pattern1/,/pattern2/ END{print ""}' file
some text pattern1
some text p
some text p 
some text p
some text pattern2

[jaypal:~/Temp] 
1
12.02.2013, 15:41
4 ответа

scp действительно обнаруживает, имеет ли это управление tty. При выполнении его как приоритетного процесса, это покажет индикатор выполнения, но если Вы фон, это, индикатор выполнения исчезает, таким образом, существует некоторое внутреннее продолжение проверок. Я сделал бы, как @peterph говорит, и запустите передачу в любом a tmux или screen сессия. Я не уверен в последствиях использования nohup, но просто сохраните терминал управления активным.

Поскольку файл является настолько большим, если бы он не сжат, я также добавил бы сжатие к передаче с scp -C опция.

Если это - каталог, и Вы повторяли ту же команду довольно часто, необходимо, вероятно, использовать rsync, который сначала проверяет, не соглашаются ли файлы (с md5 контрольными суммами) прежде, чем передать их. Можно также возобновить большие передачи файлов с --partial опция.

rsync -avz --partial --progress --rsh=ssh Files-from-Server-A [...] user@B:/tmp/
3
27.01.2020, 23:12
  • 1
    благодарит напомнить о rysnc, который я действительно забыл об использовании rsync. –  OmiPenguin 13.02.2013, 10:19

Общие рекомендации состоят в том, чтобы использовать оконечный мультиплексор (например. tmux или screen) и выполненный копия внутри, так как это дает той много гибкости. Можно отсоединить/повторно прикрепить по мере необходимости, чтобы проверить, как операция продолжается.

Эти программы создают "виртуальные" (бездисплейные) терминалы, которые отображены на/взятие входе от "реального" терминала (консоль Linux, X эмуляторов терминала, соединение SSH...). Поскольку виртуальный терминал не затронут прерываниями в реальных терминалах (оконечный мультиплексор просто прекращает отображать вывод, когда он обнаруживает закрываемое устройство IO и продолжает хранить вывод в, он - внутренний буфер), приложения, работающие внутри, экранируются от SIGHUP. В качестве награды они обычно предлагают по крайней мере некоторые основные ультрасовременные текстом возможности работы с окнами.

Я не уверен в tmux (который активно разрабатывается), но GNU screen должен быть включен в стандартный репозиторий RHEL.

5
27.01.2020, 23:12
  • 1
    спасибо Мог Вы обеспечивать больше детали, поскольку я не знаю об этой функции. Это будет потрясающим, если любой из них, которые Вы упомянули работы со случаем, который я упомянул выше. –  OmiPenguin 12.02.2013, 15:54
  • 2
    @UmairMustafa это оказалось немного длиннее, таким образом, я обновил :) –  peterph 12.02.2013, 20:12

lftp (терминальная программа передачи файлов общего назначения) поддержки sftp (нет scp, но если Вы имеете scp, Вы имеете ssh и скорее всего это поддерживает sftp также), и это может поместить передачи в фон, автоматически повторно подключить и возобновить передачу (после того, как настраиваемая задержка) на отказ и так далее.

1
27.01.2020, 23:12

Не можете Вы использовать rsync? Такая большая передача, несомненно, повредится где-нибудь, и я не уверен, что предложенные механизмы могут продолжиться от того, где она прервалась.

0
27.01.2020, 23:12

Теги

Похожие вопросы