異なるrsyncパラメータを必要とする他のサーバー環境でRSnapshotを試しています。私の問題に対する解決策は、バックアップポイントごとのパラメータを使用するようです。
ドキュメントから(rsnapshot)
バックアップ /var/ localhost/ one_fs=1
これは他の例と同じですが、4番目の列に注意してください。これは、バックアップポイントごとのオプションを指定してグローバル設定を上書きする方法です。この追加パラメータには、カンマで区切られた複数のオプションを使用できます。
バックアップごとのrsync除外を指定するときに最も便利です。
root@somehost バックアップ:/ somehost +rsync_long_args=--exclude=/var/spool/??
+記号に注意してください。これは、リストを置き換えるのではなく、rsyncに渡された引数リストに追加するようにrsnapshotに指示します。
問題は、私が追加するパラメータにカンマがあることです。引用符がいくら多くても効果がないようです。
私が追加したいのはこれです。
+rsync_long_args=--chmod D0770,F0660
以下は、一重引用符を使用した実験の1つの結果です。
/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