Есть ли способ сказать, rsync
чтобы останавливаться, когда это возможно, чистым способом? Два варианта:
- прекратить
rsync
передачу текущего файла, очистить все временные файлы и выйти; - или дайте
rsync
завершить передачу текущего файла и затем остановитесь.
Делая Ctrl + Cэто, вы останавливаетесьв середине передачии оставляет там временные файлы, верно?
Редактировать
Даже если использовать --inplace
? Каков будет лучший курс действий? Я использую rsync
с --inplace
и мне нужно быстро, как я могу сказать: «Может быть, закончить с этим файлом и выйти, или выйти сейчас, но очистить этот файл, который вы копировали, чтобы не оставить поврежденных вещей (мне все равно, если он будет удален, я смогу сделать резервную копию позже)» или что-то в этом роде.
решение1
Если вы завершите rsync с помощью Ctrl+Cэтого параметра, он остановит передачу данных, но не сохранит никаких временных файлов, если только не запущен с этой --partial
опцией.
Для тех, кто также заинтересован в том, чтобы просто приостановить rsync, если вы нажмете, Ctrl+Zэто приостановит программу. Когда вы возобновите ее, запустив fg
или bg
rsync повторит файл, который он не закончил, и продолжит загрузку остальных файлов. Чтобы увидеть все приостановленные в данный момент программы, запуститеjobs
О --inplace
Проблема с --inplace в том, что он не создает новый файл при обновлении данных, а просто записывает в существующий. Если вы нажмете ctrl + c во время работы с --inplace и он обновит существующий файл, он оставит наполовину готовый файл, не удалив его. Также, если вы синхронизируете только новые файлы и не обновляете существующие, то при прерывании передачи (с помощью ctrl + c) он оставит наполовину готовый файл, который не удалит. Просто замечание: я бы не рекомендовал --inplace для файлов ОС. Вы действительно можете испортить некоторые вещи (потому что они часто меняются)