Tôi đang sử dụng rsync
để sao lưu gia tăng, sử dụng --link-dest
tùy chọn để trỏ đến bản sao lưu trước đó để các tệp không thay đổi được liên kết cứng với đó.
Điều này đang hoạt động, nhưng không phải cho tất cả các tệp. Ví dụ: tôi có một thư mục trong bản sao lưu chứa các tệp chưa được sửa đổi trong hơn ba năm. Nhưng vì một số lý do kỳ lạ, chỉ một số trong số chúng là liên kết cứng.
Thật bất tiện, các tệp lớn hơn đều là bản sao (tức là chỉ có một liên kết đến tệp, được kiểm tra qua ls -l
). Nhưng đó cũng là trường hợp đối với một số tệp nhỏ hơn và thực sự một số tệp được liên kết cứng lớn hơn một số tệp được sao chép.
Dường như không có bất kỳ khuôn mẫu nào cho phép tôi dự đoán đâu sẽ là bản sao và đâu là liên kết cứng. Độ dài tên tệp và kích thước tệp dường như không liên quan, cũng như ngày sửa đổi: có sự kết hợp của tất cả những điều này trong cả danh sách được sao chép và liên kết cứng. Điều đó nói rằng, các tập tin làm có vẻ nhất quán trên nhiều bản sao lưu, vì vậy những gì đã xảy ra với một bản sao lưu dường như cũng đã xảy ra với bản sao lưu tiếp theo.
Có một số thuộc tính (kỹ thuật hoặc cách khác) của một tệp, một số tính năng, có thể gây ra rsync
để sao chép nó hơn là liên kết cứng nó?
CHỈNH SỬA 1: Đề cập đến "thuộc tính" khiến tôi tự hỏi liệu có một số thuộc tính ls -l
không liệt kê có thể có tác động, nhưng làm lsattr
trong thư mục nguồn cho thấy rằng tất cả các tệp có thuộc tính giống hệt nhau.
CHỈNH SỬA 2: Trước đây tôi đã nói (hiện đã bị xóa) rằng các quyền đều giống nhau, nhưng điều đó là sai. Các quyền giống nhau trong thư mục đích (đã sao lưu). tôi đang dùng --perm
(để duy trì quyền), vì vậy tôi không biết tại sao quyền không được bảo tồn. Trước đây tôi cũng đã chạy với tư cách là người dùng không phải root, nhưng hiện tôi đang thử với quyền root trong trường hợp điều đó tạo ra sự khác biệt, nhưng các quyền vẫn không được giữ nguyên, đó có thể là lý do tại sao một số tệp trông giống như chúng đã thay đổi - tệp không có 't nhưng các quyền của nó dường như có (ít nhất là khi so sánh với bản sao lưu trước đó với các quyền không chính xác của nó).
CHỈNH SỬA 3: Bây giờ tôi nghĩ rằng đó là điều gì đó liên quan đến máy chủ CIFS của tôi. Có một cái gì đó trong mount.cifs
trang người đàn ông về file_mode
tùy chọn: "Nếu máy chủ không hỗ trợ phần mở rộng CIFS Unix, điều này sẽ ghi đè chế độ tệp mặc định." Khi tôi chạy gắn kết
lệnh không có đối số để liệt kê các giá treo, các tùy chọn được liệt kê bao gồm file_mode=0755
và dir_mode=0755
liên kết với những gì tôi thấy. tôi không thể chmod
một tệp trên giá treo, vì vậy những tệp ban đầu không có 0755
các quyền được coi là đã thay đổi và do đó được sao chép lại - và một lần nữa nhận được các quyền sai trong bản sao lưu do quá trình gắn kết.