Rsync là một trong những tiện ích hữu ích nhất cho một quản trị viên máy chủ, nhưng nó đồng bộmọi điều theo mặc định, điều này có thể gây phiền toái nếu ứng dụng của bạn tạo nhiều tệp tạm thời. Dưới đây là cách loại trừ tệp khi sử dụng rsync.
Loại trừ khỏi Danh sách trong Tệp
Đây là phương pháp lý tưởng để loại trừ các tệp và thư mục, vì bạn luôn có thể chỉnh sửa danh sách và chỉnh sửa mọi thứ nếu cần. Đây là cú pháp:
rsync - -exclude-from=/path/to/exclusion-file /path/to/source /path/to/dest
Điều khó khăn với rsync là bạn cần phải sử dụng đường dẫn tương đối khi bạn đang cố gắng loại trừ mọi thứ, bởi vì khi nó cố khớp với các loại trừ, nó sẽ không sử dụng phần đầu tiên của đường dẫn cho phù hợp … thật lạ.
Ví dụ, bạn đang cố gắng sao lưu / dữ liệu / web / và gửi nó đến một máy chủ khác, vì vậy bạn sử dụng một lệnh như rsync -a / data / web / user @ server: / sao lưu / dữ liệu / web / để làm cho nó xảy ra … nhưng bạn thực sự muốn bỏ qua đồng bộ hóa thư mục / data / web / cache /. Khi rsync truy cập để kiểm tra danh sách loại trừ của bạn cho từng mục mà nó đồng bộ hóa, nó sẽ không kiểm tra / dữ liệu / web / cache / vì lệnh rsync ban đầu của bạn có trong thư mục / data / web /. Nó sẽ chỉ kiểm tra “cache /” với danh sách. Vì vậy, bạn sẽ cần đặt "bộ nhớ cache" vào danh sách, chứ không phải đường dẫn đầy đủ. Thí dụ:
rsync -a --exclude-from=/data/exclusions /data/web/ /backups/
Bây giờ để loại trừ / dữ liệu / web / bộ nhớ cache và / dữ liệu / web / tạm thời khỏi rsync bằng lệnh này, chúng tôi sẽ xóa / data / web / phần của đường dẫn và tệp / dữ liệu / loại trừ sẽ chứa nội dung này:
cache* temp*
Bạn sẽ lưu ý rằng tôi đã thêm * vào đường dẫn, để đảm bảo rằng nó khớp với bất kỳ thứ gì bắt đầu bằng "bộ nhớ cache" ở đầu. Bạn có thể sử dụng mẫu dấu sao này vì các lý do hữu ích hơn nếu bạn muốn - giả sử bạn muốn loại trừ tất cả các tệp.txt khỏi đang được đồng bộ hóa. Bạn sẽ bắt đầu mẫu với dấu sao để đảm bảo luôn phù hợp và thêm thông tin này:
*.txt
Điều đó sẽ đảm bảo rằng các loại tệp đó bị bỏ qua trong quá trình đồng bộ hóa. Nó khá đơn giản ngoài điều đó.
Loại trừ một mục duy nhất
Kỹ thuật này ít hữu ích hơn nhiều, nhưng bạn có thể sử dụng nó một cách nhanh chóng nếu bạn cần. Nếu bạn đang thiết lập một kịch bản để sử dụng rsync, mà bạn thường là, bạn nên dành thêm phút để loại trừ khỏi một danh sách tập tin thay vì để bảo trì trong tương lai dễ dàng hơn. Cú pháp rất giống nhau:
rsync --exclude=relative/path/to/exclusion /source /dest
Đường dẫn tương đối nên áp dụng ở đây như trên.