Execute um cronjob uma vez por dia, quando a máquina estiver ligada, mas não necessariamente em um horário específico

Execute um cronjob uma vez por dia, quando a máquina estiver ligada, mas não necessariamente em um horário específico

Quero executar um cronjob uma vez por dia em uma máquina que não funciona o tempo todo, mas que funciona pelo menos uma vez por dia durante algumas horas. O problema com um cronjob é que tenho que fornecer a hora exata em que ele deve ser executado, mas minha máquina pode não estar funcionando neste momento específico. Eu sei que existe uma opção no cron que diz "faça isso ao inicializar", mas minha máquina geralmente não é reinicializada, mas deixo-a em modo de espera. Em outras palavras, quero executar algo uma vez por dia, mas não posso dar um horário exato. Existe uma solução para isso?

Responder1

Você quer algo comoanacron:

anacron é um programa de computador que realiza agendamento periódico de comandos, tradicionalmente feito pelo cron, mas sem assumir que o sistema esteja funcionando continuamente. Assim, pode ser utilizado para controlar a execução de jobs diários, semanais e mensais (ou qualquer coisa com período de n dias) em sistemas que não rodam 24 horas por dia.

Disponível como pacotes na maioria das distribuições Linux. Provavelmente também existe uma porta para MS Windows ...

Responder2

Você pode invocar o trabalho a partir de um script de inicialização em /etc/rc2.d que compara a data de hoje com uma salva em um arquivo e então atualiza esse arquivo.

informação relacionada