4

Я копирую большой файл, используя scp , и понял, что в месте назначения может не хватить места для его завершения. Есть ли способ, которым я могу приостановить его, возможно, на несколько часов, и возобновить позже? Кроме того, если произойдет сбой ( на устройстве не no space left on device), смогу ли я возобновить его после очистки пространства?

(Обратите внимание, что scp уже запущен; такие решения, как использование другой программы, не будут работать.)

1 ответ1

7

Вы можете приостановить процесс с помощью SIGSTOP, а затем продолжить его с помощью SIGCONT. (Смотрите kill -l для получения списка сигналов и используйте ps для получения идентификатора процесса).

Однако есть все шансы, что это не сработает. Например, если у вас есть маршрутизатор между вашим источником и пунктом назначения, который замечает и «очищает» разорванное соединение. Большинство маршрутизаторов SOHO, кажется, делают это, потому что очистка соединений означает меньшее использование памяти. (И, таким образом, они могут построить более дешевые маршрутизаторы).

Если это произойдет, вам нужно будет либо снова скопировать с помощью scp, либо вы можете использовать rsync.

Преимущество Rsync состоит в том, что он сравнивает уже существующие файлы и не копирует данные без необходимости. В вашем случае он должен обнаружить уже существующий, частично загруженный файл и загрузить только оставшуюся часть файла

Синтаксис будет следующим:rsync -v -e ssh /home/my_file username@destination.host.tld:~

-v для многословия. -e "параметры ssh", чтобы указать ssh в качестве удаленной оболочки.

Если ваши данные сжимаемы, вы можете добавить -z для сжатия данных.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .