Как мне выполнить rsync из SRC в DEST, проверить файл DEST, а затем удалить файл SRC? (rcursively)

Как мне выполнить rsync из SRC в DEST, проверить файл DEST, а затем удалить файл SRC? (rcursively)

У меня есть два каталога в скрипте bash, которые содержат эти две переменные

$SRC

$DEST


Как бы я сделалrsync

  1. копирование файлов из $SRC/ в $DEST/,
  2. Проверка соответствия файлов $DEST/* файлам $SRC/ (наилучшее возможное соответствие, хотя и медленное)
  3. а затем удалить файл $SRC/?

Все, что я нахожу в Google, дает пример выполнения rsync и последующего удаления файла DEST.

Я не понимаю, зачем делать переход rsyncв целевой каталог, а затем удалять его?

поищите в Google и поймете, что я имею в виду.

решение1

Итак, опция Переместить файл — это --remove-source-files. Вотстраница руководства, и посмотрите обсуждение здесь: https://unix.stackexchange.com/questions/43957/using-rsync-to-move-not-copy-files-between-directories

Обратите внимание, что rsync всегда проверяет файлы с помощью контрольных сумм, но вам решать, достаточно ли этого для ваших проблем. Примечательно, что контрольная сумма от места назначения рассчитывается при передаче, а не после записи на диск, поэтому она не рассчитывается на основе полученного файла, и вы не получите сбой, если только не возникнет ошибка ОС при его записи. Некоторые обсуждения этого здесь: https://unix.stackexchange.com/questions/30970/does-rsync-verify-files-copied-between-two-local-drives

Если этого недостаточно для ваших нужд, рассмотрите возможность написания скрипта для rsync-синхронизации файлов без удаления источника, повторного запуска rsync с -cцелью выбора/копирования файлов, контрольная сумма которых не совпадает, а затем окончательного удаления исходных файлов с помощью rmили чего-то подобного.

решение2

Это должно быть простое использование rsyncопции--remove-source-files

rsync --dry-run --stats -av --remove-source-files "$SRC/" "$DEST/"

Удалите --dry-run(и, возможно, --stats), когда будете довольны, что команда будет делать то, что, по вашему мнению, она должна делать.

Связанный контент