Agende um script de shell todos os dias às 13 CET sem crontab

Agende um script de shell todos os dias às 13 CET sem crontab

Estou desenvolvendo um script shell ksh no servidor AIX que deve ser executado exatamente às 13h todos os dias. Não tenho permissão para usar CRONTAB, AT, WATCH, inotify, date -d, etc. A única opção é usar para fazer com que o script faça um loop contínuo e seja executado em segundo plano.

while [ $(date +%H%M) != 1300 ]
do
actions
sleep 60
done

Tentei o código acima, mas não quero que ele whileseja executado continuamente em segundo plano até que a condição se torne verdadeira. Sugira-me qualquer outra maneira de usar sleepou whileloop ou qualquer outra que seja executada apenas uma vez, em vez de continuamente.

Responder1

Eu só fiz isso em perle nunca usei ksh, mas não vejo por que não deveria ser possível, mas fiz algo assim (provavelmente não é um código válido em qualquer idioma):

while(true)
    starttime=`date +%s`
    actions
    sleep starttime+24*60*60-`date +%s`
end

Isso só faz com que as ações comecem a cada 24 horas. Meu pensamento era fazer com que ele rodasse às 13h, basta adicionar um loop no início que espera até as 13h. Pensando nisso talvez seja melhor substituir starttime+24*60*60por algo como date -d "13:00 tomorrow" +%s.

informação relacionada