Назад | Перейти на главную страницу

rsync: резервное копирование каталога локально перед синхронизацией с удаленного

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

before syncing files from remote :
cp -rf production_code_base production_code_base_old
now syncing remote changes to the production directory

Есть ли способ сделать это?

Кроме --backup-dir вариант (который я не использовал, поэтому я не уверен, подходит ли он), вы можете сделать «резервную копию жесткой ссылки» с cp -al production_code_base production_code_base_old. Это очень быстро, поскольку он не копирует данные и не занимает место для неизмененных файлов.

Примечание: Это безопасно в данном конкретном случае, потому что rsync никогда не открывает существующий файл для записи, он записывает все во временные файлы и завершает работу с mv после этого. Другие системы передачи могут перезаписывать существующие файлы, разрушая жесткую «резервную копию».

Что ж, есть много способов сделать это. Словно cp команда, которую вы только что отправили. Или вы можете использовать --backup-dir вариант для rsync.

Но чего вы пытаетесь достичь? Может быть, лучше сделать это с помощью надлежащего контроля версий?