다른 rsync 매개변수가 필요한 다른 서버 환경에서 RSnapshot을 시도하고 있습니다. 내 문제에 대한 해결책은 백업 지점별 매개변수를 사용하는 것 같습니다.
설명서에서(rsnapshot)
백업 /var/ localhost/ one_fs=1
이는 다른 예와 동일하지만 네 번째 열에 주목하세요. 이는 백업 지점별 옵션을 지정하여 전역 설정을 재정의하는 방법입니다. 이 추가 매개변수는 쉼표로 구분된 여러 옵션을 사용할 수 있습니다.
백업별 rsync 제외를 지정할 때 가장 유용합니다.
root@somehost 백업:/ somehost +rsync_long_args=--exclude=/var/spool/??
+ 기호에 유의하세요. 이는 목록을 바꾸는 대신 rsync에 전달된 인수 목록에 추가하도록 rsnapshot에 지시합니다.
문제는 제가 추가하는 매개변수에 쉼표가 있다는 것입니다. 따옴표가 아무리 많아도 효과가 없는 것 같습니다.
제가 추가하고 싶은 내용은 바로 이것입니다
+rsync_long_args=--chmod D0770,F0660
다음은 작은 따옴표를 사용한 실험 중 하나의 결과입니다.
/usr/local/bin/rsnapshot configtest
----------------------------------------------------------------------------
ERROR: /usr/local/etc/rsnapshot.conf on line 202:
ERROR: backup backupadmin@prime::shared_folders/ prime/shared_folders \
+rsync_long_args='--chmod D0770,F0660' - Syntax error on \
line 202 in extra opts: +rsync_long_args='--chmod \
D0770,F0660'
ERROR: ---------------------------------------------------------------------
어떤 지침이라도 감사하겠습니다.
사실 short_args와 long_args를 변경해야 해서 좀 복잡하지만, 쉼표가 가장 중요하다고 생각합니다. 또한 전체 매개변수 문자열을 동일한 결과로 대체해 보았습니다. 또한 작은따옴표와 큰따옴표가 있거나 없는 백슬래시를 사용하여 쉼표를 "이스케이프"해 보았습니다.
답변1
추가 옵션을 통해 제공되는 매개변수에는 쉼표를 사용할 수 없습니다. 코드에서는 이를 허용하지 않습니다.
코드 rsnapshot
자체:
sub parse_backup_opts {
....
# split on commas first
@pairs = split(/,/, $opts_str);
....
}
rsnapshot.conf
이 경우 각 소스 시스템마다 다른 파일을 사용하는 것이 좋습니다 . 각 *.conf
파일이 가능한 한 적은 줄로 구성 되도록 공통 부분을 추출할 수 있습니다 .
include_conf /usr/local/rsnapshot/DEFAULT.inc
lockfile /var/run/rsnapshot-remoteserver.pid
rsync_short_args -avzSi
rsync_long_args --delete --delete-excluded --numeric-ids --fake-super ...
snapshot_root /backup/rsnapshot/remoteserver
one_fs 1
backup remoteuser@remoteserver:/ root/
backup remoteuser@remoteserver:/home/ home/
exclude_file /usr/local/rsnapshot/EXCLUDE-linux.inc
공통 구성을 넣고 공통 DEFAULT.inc
제외 항목을 EXCLUDE-linux.inc
.rsnapshot
-c
rsnapshot -c /usr/local/rsnapshot/remoteserver.conf hourly