
すべてのユーザーがアクセスできるログストレージに、1 時間ごとにいくつかのログ ファイルを転送する必要があり、そのために rsync を使用していますが、ログ ファイルがローテーションされて自動的に圧縮されると、rsync が新しいファイルがあることを検出してそれを転送するため、問題が発生します。つまり、宛先サーバーには次のファイルがあります。
example.log.2014-01-17--00
そして
example.log.2014-01-17--00.gz
これは同じログファイルですが、gzip -9 で圧縮されています。
これは私の rsync 行で、スクリプトに含まれています:
rsync -rvzt --include "*/" --include "$pattern" --exclude "*" $directory [email protected]:/home/user/directory/$subdir/$basefilename
これは crontab によって 1 時間ごとに実行され、転送したいパスとパターンを含むファイルに含まれる $pattern と $directory に一致するすべてのファイルを転送します。
私の質問は、私が見たことのない rsync オプションがあるかどうか、またはそれを実行する可能性があるかどうか、そしてその方法を教えてください。
前もって感謝します。
答え1
rsyslog転送[1]の使用を検討しましたか?
また、[2]によると、追加すると--exclude '*.gz'
問題が解決するようです。なぜ追加するのですか--exclude '*'
? 私の解釈では、すべてのファイルが同期から除外されることになります。
[1]http://www.rsyslog.com/storing-and-forwarding-remote-messages/
[2]http://www.thegeekstuff.com/2011/01/rsync-exclude-files-and-folders/