Rsync
rsnapshot - 添加每個備份點參數的故障?
我正在嘗試從不同的伺服器環境進行 rsnapshot,這需要不同的 rsync 參數。我的問題的解決方法似乎是使用每個備份點參數。
來自手冊(rsnapshot)
備份 /var/ localhost/ one_fs=1
這與其他範例相同,但請注意第四列。這是您指定每個備份點選項以覆蓋全域設置的方式。這個額外的參數可以有幾個選項,用逗號分隔。
在指定每個備份的 rsync 排除時最有用:
備份 root@somehost:/ somehost +rsync_long_args=–exclude=/var/spool/??
注意 + 號。這告訴 rsnapshot 添加到參數列表以傳遞給 rsync 而不是替換列表。
這個問題是我要添加的參數中有一個逗號。再多的亂七八糟的報價似乎都沒有效果。
這是我要添加的內容
+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,但我認為逗號是顯示停止符。我也嘗試用相同的結果替換整個參數字元串。我也嘗試過用反斜杠“轉義”逗號,無論是否帶有單引號和雙引號。
您不能在通過額外選項提供的參數中使用逗號:程式碼不允許。
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