Как сохранить полную структуру каталогов при резервном копировании с помощью rsync?
Например, удаленный сервер — этоСатурн, и я хочу сделать резервную копиюСатурн's/home/udi/файлы/картинкив локальный каталог с именемрезервное копирование.
Я хочу иметь (локально)резервная копия/home/udi/файлы/картинкискорее, чемрезервное копирование/фотографии.
решение1
Используйте опцию -R
или --relative
для сохранения полного пути.
решение2
Другой распространенный вариант использования — сохранение выбранной части дерева каталогов с помощью /./
, например, если вы хотите:
/home/udi/files/pictures
идти в:
backup/files/pictures
ты можешь написать:
rsync --relative /home/udi/./files/pictures backup
Магия /./
специально анализируется rsync
перед тем, как передать этот путь системным вызовам, и сообщает, откуда начинать создавать каталоги. Это /./
ничего не значит для других утилит POSIX в целом, например, путь a/./b
такой же, как a/b
в POSIX.
решение3
С помощью Cygwin Windows rsync и при условии, что удаленный rsync указывает на корень, я бы сделал следующее:
rsync -vtrz --delete server::rsyncid/home/udi/files/pictures /cygdrive/d/backup/home/udi/files
Это поместит содержимое удаленного каталога pictures в /backup/home/udi/files/pictures. Предположительно синтаксис в unix будет аналогичным.
Дж.Р.
решение4
Вы можете внести изменения в cron, чтобы узнать, когда вы хотите запустить rsync.
rsync -avz -e ssh ruser@rserver:/home/udi/files/pictures/* /backup/pictures/
также вы можете добавить ключ ssh для подключения к удаленному серверу без пароля