0 votos

Ejecutar la tarea de launchd no realizada en el próximo arranque

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:

  1. Verifica un archivo de registro de marca de tiempo si se ha ejecutado una copia de seguridad exitosa este mes
  2. Si sí --> salir, si no --> ejecutar copia de seguridad
  3. 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.

0voto

Marc Wilson Puntos 146

MacPorts paquetería anacron, si desea usarlo.

$ port info anacron
anacron @2.3_4 (sysutils)
Variantes:             universal

Descripción:          Anacron es un programador de comandos periódicos. Ejecuta comandos en intervalos especificados en días.
                      A diferencia de cron, no asume que el sistema está funcionando continuamente.
Página principal:      http://sourceforge.net/projects/anacron

Plataformas:            darwin
Licencia:              GPL-2+
Mantenedores:          ninguno

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X