Cách loại trừ tệp khỏi Rsync

Mục lục:

Cách loại trừ tệp khỏi Rsync
Cách loại trừ tệp khỏi Rsync

Video: Cách loại trừ tệp khỏi Rsync

Video: Cách loại trừ tệp khỏi Rsync
Video: 1 tuần sử dụng hệ điều hành ChromeOS (tốt hơn Windows/Macos?) - YouTube 2024, Tháng tư
Anonim
Image
Image

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.

Đề xuất: