Я не уверен, что заголовок действительно правильный. У меня есть строка в моем rsnapshot.conf
backup root@123.123.123.123:/mnt/rsnapshot/ srv01/
Итак, rsnapshot создает режиссеров RSNAPSHOT_ROOT/daily.0/srv01/mnt/rsnapshot
и помещает туда файлы резервных копий. Для меня /mnt/rsnapshot
часть не нужна; Я бы предпочел, чтобы мои резервные копии файлов были прямо в RSNAPSHOT_ROOT/daily.0/srv01/
. Есть ли способ добиться этого?
rsnapshot
использует --relative
флаг rsync
чтобы сохранить информацию о пути. В большинстве случаев вы, вероятно, захотите сохранить (по крайней мере часть) эту информацию, особенно при резервном копировании локальных каталогов. Однако в вашем случае вам действительно не нужно сохранять префикс ведущего пути.
С достаточно свежими версиями rsync
(v.2.6.7 +), вы можете явно управлять частью префикса пути, который --relative
сохраняет, вставив ./
в желаемой точке отсечения. В ./
эффективно не изменяет имя пути, но сообщает rsync
что ты хочешь --relative
чтобы сохранить только ту часть пути, которая следует за ./
. Поскольку вы хотите отрезать весь путь, вы просто добавляете ./
в конец исходного пути, например:
backup root@123.123.123.123:/mnt/rsnapshot/./ srv01/
РЕДАКТИРОВАТЬ
Ладно, похоже, ./
уловка в этом случае не сработает, так как rsnapshot
снимает следы /
. Вместо этого вы можете отключить --relative
вариант для каждой точки резервного копирования, добавив четвертый столбец в свой backup
строка, например:
backup root@123.123.123.123:/mnt/rsnapshot/ srv01/ +rsync_long_args=--no-relative
В +rsync_long_args
говорит rsnapshot
добавить к существующим rsync_long_args
вариант, только для текущей точки резервного копирования. Добавляя --no-relative
к rsync_long_args
, вы добьетесь желаемого эффекта выключения --relative
.
Первое предложение Стивена использовать ./
действительно работает с rsnapshot, вам просто нужно поставить его дважды:
backup root@123.123.123.123:/mnt/rsnapshot/././ srv01/
Rsnapshot удалит последнюю косую черту, но первая точка работает для rsync.
Это поведение фактически контролируется rsync --relative
флаг. Цитирование руководство по rsync:
-R, --относительный
Используйте относительные пути. Это означает, что на сервер отправляются полные имена путей, указанные в командной строке, а не только последние части имен файлов. Это особенно полезно, если вы хотите отправить несколько разных каталогов одновременно. Например, если вы использовали эту команду:
rsync -av /foo/bar/baz.c remote:/tmp/
... это создаст файл с именем baz.c в / tmp / на удаленном компьютере. Если вместо этого вы использовали
rsync -avR /foo/bar/baz.c remote:/tmp/
тогда на удаленном компьютере будет создан файл с именем /tmp/foo/bar/baz.c, с сохранением его полного пути. Эти дополнительные элементы пути называются «подразумеваемыми каталогами» (т.е. каталогами «foo» и «foo / bar» в приведенном выше примере). [...]
Итак, в вашем rsnapshot.conf
найдите строку, которая начинается с rsync_long_args
. По умолчанию, --delete --numeric-ids --relative --delete-excluded
должен присутствовать. Удаление --relative
вариант, должен привести к желаемым результатам.