Как приостановить / возобновить передачу больших файлов?


23

Недавно мне пришлось скопировать около 20 ГБ данных, разделенных между 20 файлами, с моего ноутбука на внешний жесткий диск. Поскольку эта операция занимает довольно много времени (~ 560 Кбит / с), мне было интересно, есть ли способ приостановить передачу и возобновить ее позже (в случае, если мне нужно прервать передачу). Как побочный вопрос, есть ли разница в производительности между копированием с терминала и копированием с Nautilus?

Ответы:


21

Я бы рекомендовал использовать rsync .

Пример:

rsync -a --append source-file destination

Если вы хотите увидеть прогресс, добавьте --progressпараметр в команду.

альтернативный текст


4
Параметр -append, кажется, является связующим звеном с «Возобновить» ... но есть ли элегантный способ «приостановить» rsync , кроме Ctrl + C? ... и может rsync возобновить точно, после чего-то драматического .. например. отключение питания?
Peter.O

Если вы пришли из Google в 2016 году, одним из способов было бы запустить команду rsync как процесс из python или аналогичного и отслеживать процесс, читая его вывод. Затем вы можете запустить сигнал SIG / против процесса. Sh файл должен быть в состоянии сделать это, я думаю
Angry 84

3

краткий ответ, не требует установки, чтобы приостановить использование, kill -STOP PID
чтобы продолжить приостановленное использование процесса, kill -CONT PID
где PID - это идентификатор процесса. Вы можете получить PID, запустив системный монитор или topкоманду


2

Я могу ответить только часть о разнице между терминалом и наутилусом. Я проверял это несколько раз. Похоже, копирование из терминала происходит быстрее, чем любой графический способ, например, nautilus. По крайней мере, в моем случае, когда я копирую около 32 ГБ информации, от терминала требуется на 3-5 минут меньше, чем наутилуса из 25-минутной копии. это примерно 10% -20% времени. О том, как возобновить копирование на внешнее устройство, я думаю curlили rsyncвозобновлю неудачную копию. По крайней мере, с помощью команды cp. Я сам не пробовал (завтра попробую), но эти два могут сработать.

Для curl вам нужно aptitude install curlили apt-get instal curlтак как он не поставляется с Ubuntu по умолчанию.

Используйте curl --helpили, rsync --helpчтобы узнать больше. Завтра я покажу, как копировать с обоими, если вы не можете найти способ.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.