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

В Rsnapshot ошибка конфигурации, исключая удаленные папки

У меня есть несколько 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 меня проигнорировал. Когда я заменил запятую на пробел, он заработал. Пожалуйста, попробуйте это и посмотрите, сработает ли это и для вас.