不足しているファイルをrsyncに無視させるにはどうすればよいですか?


9

いくつかの異なるシステムに対して次のようなコマンドを実行しています。

$ rsync -a -v foo@machine.company.com:'/path/to/first/*.log path/to/second.txt' /dest/folder/0007/.

* .logが存在しないこともありますが、それでも問題ありませんが、rsyncは次のエラーを生成します。

receiving file list ... rsync: link_stat "/path/to/first/*.log" failed: No such file or directory (2)
done

それを抑制する方法はありますか?私が考えることができる唯一の方法は、包含フィルターと除外フィルターを使用することです。ありがとう!

回答:



2

明確にするために、エラーを「表示」しないようにしますか?その場合は、標準エラー出力をリダイレクトすることもできますが、最終的には、知りたいと思われるより深刻なエラーを見逃す可能性があります。

エラー出力のリダイレクト例

rsync -a -v foo@machine.company.com:'/path/to/first/*.log path/to/second.txt' /dest/folder/0007/ 2>/dev/null

代わりに、存在しないファイルのエラーのみを見逃したい場合は、rsync * .logフィルターを変更できず、インクルードの使用を避けたい場合は、スクリプトにラップして、状態。

スクリプトの例

#!/bin/sh
# Script to Handle Rsync based on Log File Existence
if [ "$(ls -A /path/to/first/*.log > /dev/null > 2&1)" ]; then
     # Log Exists Use This Rsync
    rsync -a -v foo@machine.company.com:'/path/to/first/*.log path/to/second.txt' /dest/folder/0007/
else
    # Log Does Not Exist Use This Rsync
    rsync -a -v foo@machine.company.com:'path/to/second.txt' /dest/folder/0007/
fi

私が助けてくれたことを願っています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.