Цель: Я хочу скопировать локальный репозиторий на удаленный сервер. Сюда входят новые, измененные и удаленные файлы.
Проблема: rsync --delete
удалит (в месте назначения) все, что отсутствует в источнике (мое репо). Однако у меня есть важные файлы на сервере, которых нет в моем репо (мультимедиа, ресурсы, файлы конфигурации и т. Д.). Поэтому я хочу сохранить эти файлы, но удалить все файлы, которые были синхронизированы перед использованием rsync.
Другими словами, все, что было в моем репо и я удалил, должно быть удалено с сервера, но другие файлы на моем сервере не должны удаляться.
Есть ли способ сделать это?
У rsync нет способа отличить файлы, которые существовали до того, как вы когда-либо запускали rsync, и файлы, которые были созданы после, если вы не можете гарантировать дату изменения. Лучше всего использовать либо другой каталог для репо, либо фильтры, include / exclude и include-file / exclude-file. Все эти параметры можно найти на странице руководства rsync или с помощью простого поиска с помощью вашей любимой поисковой системы.