У меня есть несколько VPS с Ubuntu 18.04 LTS.
Один из этих VPS является мастером резервного копирования и запускает rsnapshot
для резервного копирования собственных папок и извлечения удаленных папок на других VPS.
Это команды в файле rsnapshot.conf:
#server1 (backup server)
backup /etc/ server1/
backup /home/ server1/
backup /opt/ server1/
backup /root/ server1/
backup /srv/ server1/
backup /usr/local/ server1/
backup /var/ server1/
exclude /var/cache/
exclude /var/lock/
exclude /var/log/
exclude /var/run/
exclude /var/spool/
exclude /var/tmp/
exclude logs/
#server2 (remote server)
backup server2:/etc/ server2/ +rsync_long_args=--rsync-path=/usr/local/bin/rsync_wrapper.sh
backup server2:/home/ server2/ +rsync_long_args=--rsync-path=/usr/local/bin/rsync_wrapper.sh
backup server2:/opt/ server2/ +rsync_long_args=--rsync-path=/usr/local/bin/rsync_wrapper.sh
backup server2:/srv/ server2/ +rsync_long_args=--rsync-path=/usr/local/bin/rsync_wrapper.sh
backup server2:/usr/local/ server2/ +rsync_long_args=--rsync-path=/usr/local/bin/rsync_wrapper.sh
backup server2:/var/ server2/ +rsync_long_args=--rsync-path=/usr/local/bin/rsync_wrapper.sh,--exclude=/var/cache/,--exclude=/var/lock/,--exclude=/var/log/,--exclude=/var/spool/,--exclude=/var/tmp/
С участием rsnapshot configtest
, последняя строка отображается как ошибка конфигурации.
Моя цель - сохранить те же папки, что и на основном сервере, и исключить некоторые из них в / var.
Я проконсультировался с этим человеком и несколькими страницами в Интернете, но я не могу понять, каков правильный синтаксис для исключения нескольких папок в одной строке резервной копии.
Заранее спасибо за помощь.
=== Обновление ===
Я изменил последнюю команду на:
backup server1:/var/ server1/ +rsync_long_args=--rsync-path=/usr/local/bin/rsync_wrapper.sh,exclude_file=/etc/rsnapshot.exclude
Файл rsnapshot.exclude содержит:
/var/cache/
/var/lock/
/var/log/
/var/run/
/var/spool/
/var/tmp/
logs/
Теперь команда выполняется без ошибок, но для server1 скопирована вся / var каталог, включая папки, которые нужно исключить. Вместо этого ничего в / var для остальных серверов.
Аргументы для rsync необходимо разделять пробелами, а не запятыми. Т.е. вместо этого:
+rsync_long_args=--rsync-path=/usr/local/bin/rsync_wrapper.sh,exclude_file=/etc/rsnapshot.exclude
Вам следует использовать:
+rsync_long_args=--rsync-path=/usr/local/bin/rsync_wrapper.sh exclude_file=/etc/rsnapshot.exclude
rsnapshot дословно передает аргументы в rsync. Если использовать запятые, он всему поверит (--rsync-path=/usr/local/bin/rsync_wrapper.sh,exclude_file=/etc/rsnapshot.exclude
) один и не будет работать. В файле журнала для rsnapshot должны быть ошибки.
По крайней мере, это был мой опыт. Я попытался добавить еще одну опцию в rsync_long_args
и обнаружил, что rsnapshot меня проигнорировал. Когда я заменил запятую на пробел, он заработал. Пожалуйста, попробуйте это и посмотрите, сработает ли это и для вас.