Trước hết, bạn nên đọc một chút về cú pháp bao gồm / loại trừ của rsync. Tôi có cảm giác rằng những gì bạn muốn làm được thực hiện tốt hơn bằng cách sử dụng các khối u **
hơn là các khối *
. ( **
Mở rộng tới bất kỳ số lượng các mục, trong khi *
nở chỉ với một mục duy nhất có thể phù hợp với nhiều mục mục. Các chi tiết có tại man rsync
dưới Bao gồm / Loại trừ quy Pattern .)
Điều đó nói rằng, nếu bạn muốn có thể khôi phục hệ thống về trạng thái làm việc đã biết từ bản sao lưu với ít rắc rối nhất, bạn nên cẩn thận với việc loại trừ các tệp hoặc thư mục. Tôi sử dụng rsnapshot cho mình và thực sự đã sử dụng cách tiếp cận ngược lại: bao gồm mọi thứ trừ một vài thư mục được lựa chọn cẩn thận.
Vì vậy, rsnapshot.conf của tôi thực sự phát biểu (với các tab để làm cho trình phân tích tệp cấu hình của rsnapshot hài lòng):
interval backup NNN # pick your poison
one_fs 0
exclude /backup/**
exclude /dev/**
exclude /proc/**
exclude /run/**
exclude /sys/**
exclude /tmp/**
backup / ./
và rất ít khác. Vâng, điều đó có nghĩa là tôi có thể sao chép nhiều hơn một chút so với những gì thực sự cần thiết, nhưng nó đảm bảo rằng bất cứ điều gì không có ý định như ephermal đều được sao chép. Do rsnapshot sử dụng hành vi trùng lặp liên kết cứng của rsync, chi phí thực sự duy nhất cho việc này là trong lần chạy đầu tiên; sau đó, giả sử bạn có một vị trí mục tiêu sao lưu có kích thước hợp lý (so với tổng kích thước tập dữ liệu của bạn), sẽ mất thêm rất ít thời gian hoặc dung lượng ổ đĩa. Tôi loại trừ nội dung của / sao lưu vì đó là nơi tôi gắn hệ thống tệp mục tiêu sao lưu; không loại trừ nó sẽ dẫn đến tình trạng sao chép bản sao lưu vào chính nó. Tuy nhiên, để đơn giản nếu tôi cần khôi phục lại kim loại trần, tôi muốn giữ điểm gắn kết!
Trong trường hợp của tôi, tôi cũng không thể sử dụng hợp lý one_fs 1
; Tôi chạy ZFS với hệ thống tập tin hiện tại ~ 40. Liệt kê tất cả những thứ đó rõ ràng sẽ là một cơn ác mộng bảo trì và làm việc với các hệ thống tệp ZFS liên quan nhiều hơn mức cần thiết.
Dù sao đi nữa, hầu như bất cứ điều gì bạn muốn loại trừ ở trên và ngoài những điều trên sẽ phụ thuộc vào phân phối, vì vậy hầu như không thể đưa ra câu trả lời chung chung. Điều đó nói rằng, bạn có thể tìm thấy một số ứng cử viên dưới / var.
exclude /somepath/*
là hoàn toàn tốt trong trường hợp này; nó loại trừ mọi thứ trong/somepath/
, đúng như mong đợi. Bạn không cần**
bởi vì không cần phải nhìn sâu hơn khi mọi thứ trong đó/somepath/
đã bị loại trừ.