Wie kann ich rsync vom Löschen ausschließen?

31

Ich verwende rsync, um Dateien auf mehreren Computern zu synchronisieren. Dabei verwende ich Folgendes:

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

Ich möchte alle Protokolldateien von der Übertragung von der Quelle zum Ziel ausschließen und alle vorhandenen auf dem Ziel löschen. So verwende ich --exclude=*.logmit --delete-excludeddenen funktioniert super.

Aber ich möchte eine bestimmte Protokolldatei auf dem Ziel erhalten. Ich möchte eine --exclude-from-deleteOption.

Ist das mit rsync möglich?

rauben
quelle

Antworten:

47

Der "Schutz" -Filter sollte genau das erreichen, was Sie wollen:

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

Geben Sie einfach den folgenden Filter an, bevor das relevante ausgeschlossen wird:

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

(Beachten Sie das Leerzeichen nach dem Buchstaben P.)

koniiiik
quelle
2
Das funktioniert tatsächlich.
Fish Monitor