Ejecute un cronjob una vez al día, cuando la máquina esté encendida, pero no necesariamente a una hora específica.

Ejecute un cronjob una vez al día, cuando la máquina esté encendida, pero no necesariamente a una hora específica.

Quiero ejecutar un cronjob una vez al día en una máquina que no se ejecuta todo el tiempo, pero que se ejecuta al menos una vez al día durante un par de horas. El problema con un cronjob es que tengo que darle la hora exacta en la que se supone que debe ejecutarse, pero es posible que mi máquina no esté funcionando en ese momento en particular. Sé que hay una opción para cron que dice "hacer esto al iniciar", pero mi máquina generalmente no se reinicia, pero la dejo en espera. Dicho de otra manera, quiero ejecutar algo una vez al día, pero no puedo dar una hora exacta. ¿Hay una solución para esto?

Respuesta1

quieres algo comoanacron:

Anacron es un programa informático que realiza una programación periódica de comandos que tradicionalmente se realiza mediante cron, pero sin asumir que el sistema se está ejecutando continuamente. Por lo tanto, se puede utilizar para controlar la ejecución de trabajos diarios, semanales y mensuales (o cualquier cosa con un período de n días) en sistemas que no funcionan las 24 horas del día.

Disponible como paquetes en la mayoría de las distribuciones de Linux. Probablemente también haya un puerto para MS Windows...

Respuesta2

Puede invocar el trabajo desde un script de inicio en /etc/rc2.d que compara la fecha de hoy con una guardada en un archivo y luego actualiza ese archivo.

información relacionada