私はrsyncを使用して、次のように複数のマシン間でファイルを同期しています。
rsync -az -e "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no" \
--delete --delete-excluded --force --exclude=.git --exclude=.bundle \
--exclude=tmp --exclude=log/* --exclude=*.log --exclude=*.pid \
user@Host:/path/to/src/ /var/build/dest
ソースから宛先への転送からすべてのログファイルを除外し、宛先の既存のログファイルをすべて削除したいと考えています。だから私は--exclude=*.log
を--delete-excluded
と一緒に使っています。
But宛先で特定のログファイルをそのまま保持したい。 --exclude-from-delete
オプションが必要です。
これはrsyncで可能ですか?
「保護」フィルターはあなたが望むものだけを達成するはずです:
protect, P specifies a pattern for protecting files from deletion.
関連する除外の前に次のフィルターを指定するだけです。
--filter='P my-specific-logfile.log'
(文字Pの後のスペースに注意してください。)