매일 13:00 CET에 쉘 스크립트 예약, crontab 필요 없음

매일 13:00 CET에 쉘 스크립트 예약, crontab 필요 없음

나는 매일 정확히 13시에 실행되어야 하는 AIX 서버에서 ksh 쉘 스크립트를 개발 중입니다. CRONTAB, AT, WATCH, inotify, date -d 등을 사용할 권한이 없습니다. 유일한 옵션은 스크립트를 계속 반복하고 백그라운드에서 실행하는 것입니다.

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

while위의 코드를 시도했지만 조건이 true가 될 때까지 백그라운드에서 계속 실행되는 것을 원하지 않습니다 . 다른 방법 sleep이나 while루프 또는 지속적으로 실행되는 대신 한 번만 실행되는 방법을 사용하도록 제안하십시오.

답변1

나는 그것을 에서만 수행했고 perl그것을 사용하지 않았지만 ksh왜 그것이 가능하지 않아야 하는지는 알 수 없지만 내가 한 일은 일종의 다음과 같습니다(아마 어떤 언어에서도 유효한 코드가 아닐 것입니다).

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

이렇게 하면 작업이 24시간마다 시작됩니다. 내 생각은 13시에 실행되도록 하고 시작 부분에 13시를 기다리는 루프를 추가하는 것입니다. 생각해보면 starttime+24*60*60비슷한 것으로 교체하는 것이 나을 것 같습니다 date -d "13:00 tomorrow" +%s.

관련 정보