Respuesta corta: registra un hash de cada archivo al escribir la copia y vuelve a comprobar la copia contra él más tarde.
Si los hashes siguen coincidiendo, los bytes siguen ahí. Nada más lo demuestra.
Fallan cuatro cosas, y ninguna se anuncia:
Las cuatro se ven idénticas desde fuera: un directorio lleno de archivos con nombres y fechas creíbles.
Al escribir la copia, registra lo que has escrito:
find /Volumes/Backup/Documents -type f -exec shasum -a 256 {} + > ~/backup.sha256
Más tarde, pregunta si la copia sigue coincidiendo con ese registro:
shasum -a 256 -c ~/backup.sha256
Cada línea devuelve OK o FAILED. Un archivo que ha desaparecido del todo aparece como ilegible, que es el comportamiento que quieres: un archivo que falta es un fallo, no una ausencia de pruebas.
Guarda el archivo de hashes en otro sitio que no sea el disco de copia. Un registro guardado junto a lo que describe muere con ello.
Es otra pregunta, y la que pilla a la gente. El archivo más reciente de la copia te dice cuándo funcionó la tarea por última vez:
find /Volumes/Backup -type f -newermt '-7 days' | head
Si no sale nada, no se ha escrito nada en una semana. Si confías en Time Machine, pregúntale directamente:
tmutil latestbackup
Los hashes demuestran que los bytes sobrevivieron. No demuestran que puedas recuperar un archivo, porque eso también depende de la herramienta, el índice, la llave de cifrado y de que recuerdes cómo usar las tres. Una o dos veces al año, restaura algunos archivos en una carpeta de prueba y ábrelos.
Elige un archivo que de verdad echarías de menos, no un documento de prueba. Lo que se busca con el ejercicio es descubrir que tu clave de recuperación está en una nota dentro de la Mac de la que haces copia, y descubrirlo un martes tranquilo.
Una comprobación automática tiene tres propiedades que la manual no tiene: se ejecuta te acuerdes o no, comprueba todas las piezas, incluidas las que no se te ocurrieron, y te avisa en el momento en que falla.
Copy Shelter vuelve a leer la copia y comprueba cada pieza con el hash con el que se guardó, informa de una pieza borrada como desaparecida y solo cuenta las copias que ha comprobado de verdad. También avisa tras 7 días sin una copia que funcione, lo que detecta el cuarto fallo de arriba, el habitual.
shasum?Lee cada byte, así que tarda más o menos lo mismo que copiar los datos. Esa es la idea: una comprobación que no lee los datos no puede detectar un disco que no los devuelve.
Sí, y una muestra aleatoria es mucho mejor que nada. find ... | shuf -n 50 te da cincuenta archivos para comprobar, lo que detecta rápido un disco que falla o una tarea detenida, aunque no un único archivo dañado.
Los proveedores de almacenamiento comprueban sus propias copias, y eso te protege de que fallen sus discos. No te protege de una subida que nunca terminó, de un archivo que ya estaba dañado cuando lo enviaste ni de una sincronización que se detuvo. La comprobación tiene que hacerse desde tu lado.
No sobrescribas la copia. Haz primero una segunda copia desde tu Mac en otro almacenamiento y luego averigua cuál de las dos está mal. Una comprobación fallida en una copia que vuelves a ejecutar enseguida es una comprobación fallida cuyas pruebas acabas de destruir.
Una vez al mes es un ritmo razonable para una comprobación completa, una vez a la semana para una muestra, y una o dos veces al año para una restauración real. Cualquier cosa programada es mejor que cualquier cosa que tengas que recordar.
Relacionado: la regla de copias 3-2-1 y en qué se equivoca la gente.