リモート バックアップを実行しています。これは私の rsnapshot 構成です。
config_version 1.2
snapshot_root /data/sbackup/
cmd_cp /bin/cp
cmd_rm /bin/rm
cmd_rsync /usr/bin/rsync
cmd_ssh /usr/bin/ssh
cmd_logger /usr/bin/logger
interval alpha 2
interval beta 2
interval gamma 2
interval delta 1
ssh_args -p xxxx
verbose 3
loglevel 4
logfile /var/log/rsnapshot/
exclude_file /data/xxxxx.exclude
rsync_long_args --stats --delete --numeric-ids --relative --delete-excluded
lockfile /var/run/rsnapshot.pid
backup [email protected]:/ xxxxx-server/
exclude_fileの一番下の行を追加しました
+ /root
+ /backups/mysqldb/latest
+ /etc/automysqlbackup
+ /etc/imscp
+ /etc/postfix
+ /etc/fail2ban
+ /etc/dovecot
+ /etc/apache2
+ /etc/ssh
+ /etc/ssl
+ /etc/php5
+ /etc/cron.d
+ /usr
+ /var/mail
+ /var/www
+ /var/log
- /var/cache
- /boot
- /home
- /opt
- /etc
- /*
しかし、rsync を実行した後、完全なroot
&usr
ディレクトリのみが取得されます。他の指定された+
パス ファイル/サブ ディレクトリはダウンロードされません。
+
ディレクトリを include にしたいのですが、 -
include にしたくないのです。
何が間違っているのでしょうか?
答え1
構文は難しいですが、一度コツをつかめば不可能ではありません。コツは、rsync/rsnapshot 作業ディレクトリのルートを基準にして、一致するディレクトリを 1 つずつリストする必要があることに気づくことです。
/var/logディレクトリのみ含めたいとします
+ /var # we want the var directory
+ /var/log # we want the var/log directory
- /var/* # we dont want anything else in the var directory
- /* # we don't want anything else at all
ご覧いただければと思いますが、最初に /var に一致があり、次に /var/log に一致し、次に /var/* に一致し、最後に /* に一致しています。
これはうまくいかない
+ /var/log
- /*
奇妙なことに、/var/log は一致するものを生成しないからです...
あなたの例では、最初の
+ /backups/mysqldb/latest
同じ理由で、一致するものは決して作成されません。
答え2
除外パターンは、 の/*
ようなパスは、/etc/something
明示的に含めてから を使用して不要なパスを除外しない限り/etc
、除外されることを意味しているようです/etc/*
。
したがって+ /etc
、 と を加算し- /etc/*
、/var
および/backups
についても同様に加算します/backups/mysqldb
。
ところで、先ほど2つのファイル、つまりinclude_fileとexclude_fileが必要だと言いました。これは可能ですが、実際にはファイルの各行を明示的に「+」または「-」で始めると、デフォルトアスペクトを含めるか除外するかを指定します。したがって、あなたが行ったように行の先頭にプレフィックスを付ければ、すべてを 1 つのファイルにまとめることができます。