web-dev-qa-db-ja.com

Rsnapshot--exclude-fromファイルがサブディレクトリで機能しない

リモートバックアップを行っています。これは私の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を実行した後、完全なrootusrディレクトリしか取得できません。他に言及されていない+パスファイル/サブディレクトリがダウンロードされています。

が欲しいです +含まれるディレクトリと-含まれません。

私が間違っていることは何ですか?.

3
Tuhin Bhuiyan

構文は難しいですが、一度コツをつかんだら不可能ではありません。トリックは、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
Joris

除外パターン/*は、/etc/somethingを明示的に含めてから、/etcで不要なパスを除外しない限り、/etc/*のようなパスが除外されることを意味しているようです。

したがって、+ /etc- /etc/*を追加し、同様に/var/backups/backups/mysqldbにも追加します。

ちなみに、先ほど、include_fileとexclude_fileの2つのファイルが必要だと言いました。これを行うことはできますが、実際には、ファイルの各行を明示的な「+」または「-」で開始すると、デフォルト包含または除外アスペクトがオーバーライドされます。したがって、行の接頭辞を付ければ、すべてを1つのファイルに入れることができます。

0
meuh