Trả lời ngắn: kiểm tra ngày của tệp mới nhất trong bản sao lưu, không phải ngày của thư mục. Dấu thời gian của thư mục thay đổi vì những lý do chẳng liên quan gì đến việc sao lưu hoàn tất.
Nếu tệp mới nhất bên trong cũ hơn hôm qua, bản sao lưu đã không chạy, bất kể công cụ đang nói gì.
Hầu hết lời khuyên về sao lưu nói về sai thảm họa. Nó hình dung một thảm họa kịch tính: ổ đĩa chết, máy tính xách tay bị trộm, lũ lụt. Những điều đó hiếm gặp và ai cũng hiểu.
Trường hợp phổ biến thì nhàm chán. Ổ đĩa bị rút ra để nhường chỗ cho thứ khác và không bao giờ được cắm lại. NAS khởi động lại sau khi mất điện và thư mục chia sẻ không được gắn lại. Máy tính xách tay bị gập đúng lúc tác vụ đến hạn, mỗi đêm, suốt một tháng. Một script thoát với lỗi không ai đọc vì không ai đọc một nhật ký đã ổn suốt một năm.
Trong mọi trường hợp đó, không có gì hỏng. Không có lỗi nào xuất hiện ở bất cứ chỗ nào con người nhìn. Thư mục sao lưu vẫn ở đó, vẫn đầy tệp, vẫn đúng kích thước. Điều duy nhất thay đổi là nó ngừng được cập nhật, và không gì trong hệ thống coi đó là điều đáng nhắc đến.
Trỏ lệnh này vào đích sao lưu. Nó tìm tệp được sửa đổi gần nhất ở bất kỳ đâu bên trong và in ra ngày của nó:
find /Volumes/Backup -type f -print0 | xargs -0 stat -f '%m %N' | sort -rn | head -5
Cột đầu tiên là dấu thời gian Unix. Để đọc trực tiếp:
find /Volumes/Backup -type f -newermt '-2 days' | head
Nếu lệnh đó không in ra gì, nghĩa là không có gì được ghi trong hai ngày. Đó là câu trả lời, và nó đáng tin hơn bất kỳ màn hình trạng thái nào, vì nó là thuộc tính của chính các tệp.
Riêng với Time Machine:
tmutil latestbackup
lệnh này in ra đường dẫn của ảnh chụp nhanh mới nhất, có ngày trong tên, hoặc báo lỗi nếu không có.
Theo bản năng, người ta nhìn thư mục sao lưu trong Finder và đọc cột Ngày sửa đổi. Con số đó không phải là thứ bạn nghĩ.
Thời gian sửa đổi của một thư mục thay đổi khi có thứ được thêm vào hoặc xóa khỏi nó, chứ không phải khi nội dung của một tệp bên trong thay đổi. Spotlight lập chỉ mục, một .DS_Store được ghi lại, một trình quét virus, một ứng dụng đám mây chạm vào siêu dữ liệu của chính nó: bất kỳ điều nào cũng có thể khiến một thư mục sao lưu cũ trông như vừa được ghi sáng nay.
Các tệp bên trong là bằng chứng. Thư mục thì không.
launchd với StartCalendarInterval không chạy khi máy Mac đang ngủ, và không chạy bù sau đó trừ khi bạn yêu cầu. Một máy tính xách tay gập lại lúc nửa đêm có bản sao lưu nửa đêm chưa từng chạy lần nào.launchd ghi lời phàn nàn vào một tệp, và tệp đó là thứ duy nhất biết.Nếu bạn tự làm, cách khắc phục là một công tắc an toàn: thứ gì đó lên tiếng khi một lần sao lưu không diễn ra. Đó là sự kiện khác với một lần thất bại, và chỉ sự kiện đầu bao quát các trường hợp ở trên.
Phiên bản đơn giản nhất là một tác vụ kiểm tra tuổi của tệp mới nhất và báo động nếu nó quá cũ:
if [ -z "$(find /Volumes/Backup -type f -newermt '-2 days' 2>/dev/null | head -1)" ]; then
osascript -e 'display notification "No backup in two days" with title "Backup"'
fi
Chạy nó theo lịch riêng, tách khỏi bản sao lưu, để lịch sao lưu bị hỏng không làm hỏng luôn thứ đang theo dõi nó. Điểm cuối này là điểm mọi người hay làm sai: một lần kiểm tra chạy bên trong tác vụ sao lưu không thể báo rằng tác vụ sao lưu đã không chạy.
Điều bạn thực sự muốn là chính sự vắng mặt trở thành cảnh báo, và công cụ nêu tên thứ đang thiếu.
Copy Shelter được xây dựng dựa trên điều đó. Nó theo dõi lần cuối mỗi đích được ghi và được kiểm tra, và lên tiếng sau bảy ngày không có bản sao lưu nào thành công. Nó nêu tên vị trí, nên bạn nhận được "ổ đĩa trong ngăn kéo chưa được thấy từ ngày 14 tháng 8". Và vì nó đọc lại bản sao lưu và kiểm tra từng phần với mã băm mà nó được lưu theo, một bản sao lưu đang chạy nhưng tạo ra dữ liệu không đọc được cũng bị phát hiện, đó là kiểu lỗi xa hơn trang này một bước.
Điểm số nó hiển thị chỉ tính những gì đã được xác minh gần đây. Một bản sao lưu chưa chạy không phải bản sao lưu bạn có, và con số nói đúng như vậy.
Bạn không nên phải làm vậy. Đó là ý chính của trang này: việc kiểm tra bạn làm bằng tay là việc bạn sẽ ngừng làm, thường khoảng ba tuần sau khi thiết lập. Hãy tự động hóa cảnh báo khi vắng mặt, và để việc kiểm tra bằng tay là điều bạn làm khi nó báo.
Nó giúp được, nhưng có giới hạn. Time Machine cảnh báo sau mười ngày không hoàn tất bản sao lưu nào, và thông báo đó dễ bị gạt đi, dễ bị lờ đi. Nó cũng không thể cho bạn biết bản sao lưu nó đã hoàn tất không đọc được, vì trên ổ đĩa cục bộ nó không kiểm tra.
Đó là trường hợp quyền truy cập, và nó tệ hơn vì mọi chỉ báo trạng thái đều nói thành công. Hãy so số lượng tệp ở đích với số lượng ở nguồn. Nếu bản sao lưu lẽ ra chứa hàng chục nghìn tệp mà chỉ có bốn mươi, macOS đang từ chối quyền truy cập các thư mục và tác vụ không được thông báo.
Theo cách khác, và có. Ứng dụng đồng bộ tự đăng xuất, chạm hạn mức, và tự tạm dừng, và biểu tượng báo cho bạn biết chỉ là một icon nhỏ trên thanh menu mà bạn không nhìn. Các tệp cũng nằm nguyên chỗ cũ, nên không có gì trông sai cả.
Phần lớn là vậy. Hai đích hỏng vì những lý do khác nhau, được kiểm tra riêng, đáng giá hơn bất kỳ mức giám sát nào trên một đích. Giám sát cho bạn biết bản sao đã mất; bản sao thứ hai nghĩa là điều đó không quan trọng. Xem quy tắc 3-2-1.
Liên quan: kiểm tra bản sao lưu thực sự đọc được, và quy tắc 3-2-1.