除外パラメータでrsyncを使用しようとしています。しかし、問題があります。
最初に作成されたファイルのリストが30分以上経過しました。
find /var/log/hosts/ -type f -mmin -30 > list.txt
その後、除外と一緒に使用します。
rsync -arvzh --exclude-from 'list.txt' /var/log/hosts/ [email protected]:/Archive/Rsyslog_Logs/
ただし、すべてのファイルを同期することはできません。
list.txt
/var/log/hosts/p_rsyslog/2021/05/11/14.log
/var/log/hosts/loggerarchive/2021/05/11/14.log
/var/log/hosts/node1/2021/05/11/14.log
/var/log/hosts/node2/2021/05/11/14.log
/var/log/hosts/node3/2021/05/11/14.log
...
答え1
除外ファイルのファイルパスは転送ルートに相対的である必要があるため、パス/var/log/hosts/
はlist.txt
次のようにする必要があります。
/p_rsyslog/2021/05/11/14.log
/loggerarchive/2021/05/11/14.log
/node1/2021/05/11/14.log
/node2/2021/05/11/14.log
/node3/2021/05/11/14.log
これらのパスは先行して始まり、/
フルパスとして扱われます。リーダーがない場合は、/
パスの最終コンポーネントと一致します
node1/2021/05/11/14.log
。
/var/log/hosts/node1/2021/05/11/14.log
また
/var/log/hosts/another_dir/node1/2021/05/11/14.log
これは望ましくないかもしれません。
君は走れるよ
find /var/log/hosts/ -type f -mmin -30 | sed 's#^/var/log/hosts##' > list.txt
/var/log/hosts
除外ファイルの各行からプレフィックスを削除します。
このオプションは-r
含まれているため、コマンドから削除-a
できます。rsync