Me gustaría hacer copias de seguridad periódicas usando rsnapshot en mi MacBook. Sin embargo, como es un portátil, solo estará encendido en momentos aleatorios. Por lo tanto, es posible que se pierdan tareas programadas mientras esté apagado. Una solución para esto sería anacron, que no parece estar disponible en macOS. Aparentemente, el servicio nativo de lanzamiento de macOS llamado launchd no es capaz de programar trabajos de la manera de anacron. Aquí dice:
Si programa un trabajo de lanzamiento (launchd job) configurando la clave StartCalendarInterval y la computadora está dormida cuando el trabajo debería haberse ejecutado, el trabajo se ejecutará cuando la computadora se despierte. Sin embargo, si la máquina está apagada cuando el trabajo debería haberse ejecutado, el trabajo no se ejecuta hasta que ocurra el próximo tiempo designado. Todos los otros trabajos de lanzamiento se omiten cuando la computadora está apagada o dormida; no se ejecutarán hasta que ocurra el próximo tiempo designado.
Si mi copia de seguridad mensual con rsnapshot está programada, por ejemplo, para el primer día de cada mes pero la laptop está apagada ese día, eso significaría que no tengo esa copia de seguridad y solo recibiré la siguiente un mes completo después.
¿Hay alguna solución para esto? ¿Quizás vincular el horario de lanzamiento con algunos comandos condicionales en un script de bash?
La única idea que tuve para resolver esto fue programar el trabajo de lanzamiento para cada día a una hora específica y ejecutar un script que:
- Verifica un archivo de registro de marca de tiempo si se ha ejecutado una copia de seguridad exitosa este mes
- Si sí --> salir, si no --> ejecutar copia de seguridad
- Si la copia de seguridad fue exitosa --> agregar marca de tiempo a ese archivo
Aunque eso parece innecesariamente complejo en comparación con los trabajos de anacron que se pueden crear en sistemas Unix.