web-dev-qa-db-ja.com

rsyncを削除から除外する方法は?

私は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で可能ですか?

31
Rob

「保護」フィルターはあなたが望むものだけを達成するはずです:

          protect, P specifies a pattern for protecting files from deletion.

関連する除外の前に次のフィルターを指定するだけです。

--filter='P my-specific-logfile.log'

(文字Pの後のスペースに注意してください。)

47
koniiiik