Làm thế nào để loại trừ rsync loại trừ khỏi xóa?


31

Tôi đang sử dụng rsync để đồng bộ hóa các tệp trên nhiều máy, sử dụng như sau:

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

Tôi muốn loại trừ tất cả các tệp nhật ký khỏi được chuyển từ nguồn đến đích và xóa tất cả các tệp hiện có trên đích. Vì vậy, tôi đang sử dụng --exclude=*.logvới --delete-excludedcông việc tuyệt vời.

Nhưng tôi muốn giữ một tệp nhật ký nhất định nguyên vẹn ở đích. Tôi muốn một --exclude-from-deletelựa chọn.

Điều này có thể với rsync?


Câu trả lời:


47

Bộ lọc "bảo vệ" sẽ thực hiện đúng những gì bạn muốn:

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

Chỉ cần chỉ định bộ lọc sau đây trước khi loại trừ có liên quan:

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

(Lưu ý khoảng trắng sau chữ P.)


2
Điều này thực sự hoạt động.
Giám sát cá
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.