rsnapshot - 백업 지점별 매개변수를 추가할 때 결함이 발생합니까?

rsnapshot - 백업 지점별 매개변수를 추가할 때 결함이 발생합니까?

다른 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

관련 정보