Jak wykluczyć wykluczenia rsync z usunięcia?


31

Korzystam z rsync do synchronizacji plików na wielu komputerach, używając następujących opcji:

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

Chcę wykluczyć przeniesienie wszystkich plików dziennika ze źródła do miejsca docelowego i usunąć wszystkie istniejące w miejscu docelowym. Więc używam --exclude=*.logz --delete-excludedktórym działa świetnie.

Ale chcę zachować nietknięty plik dziennika w miejscu docelowym. Chcę --exclude-from-deleteopcję.

Czy jest to możliwe dzięki rsync?


Odpowiedzi:


47

Filtr „ochrony” powinien osiągnąć dokładnie to, co chcesz:

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

Po prostu określ następujący filtr, zanim odpowiednie wykluczenia:

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

(Zwróć uwagę na spację po literze P.)


2
To faktycznie działa.
Fish Monitor
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.