フルパスを含むRsync除外リストはありますか?

フルパスを含むRsync除外リストはありますか?

除外パラメータで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

おすすめ記事