Planen Sie jeden Tag um 13 Uhr MEZ ein Shell-Skript ohne Crontab

Planen Sie jeden Tag um 13 Uhr MEZ ein Shell-Skript ohne Crontab

Ich entwickle ein KSH-Shell-Skript auf einem AIX-Server, das jeden Tag pünktlich um 13:00 Uhr ausgeführt werden muss. Ich habe keine Berechtigung, CRONTAB, AT, WATCH, inotify, date -d usw. zu verwenden. Die einzige Möglichkeit besteht darin, das Skript in einer Endlosschleife laufen zu lassen und im Hintergrund auszuführen.

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

Ich habe den obigen Code ausprobiert, möchte aber nicht, dass er whilekontinuierlich im Hintergrund läuft, bis die Bedingung erfüllt ist. Schlagen Sie mir eine andere Verwendungsmethode sleepoder whileSchleife vor oder eine Methode, die nur einmal statt kontinuierlich ausgeführt wird.

Antwort1

Ich habe es nur in gemacht perlund nie verwendet ksh, sehe aber nicht, warum es nicht möglich sein sollte. Ich habe es jedoch ungefähr so ​​gemacht (wahrscheinlich in keiner Sprache gültiger Code):

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

Dadurch werden die Aktionen nur alle 24 Stunden gestartet. Mein Gedanke war, dass man, um es um 13:00 Uhr laufen zu lassen, einfach eine Schleife am Anfang hinzufügen könnte, die bis 13:00 Uhr wartet. Wenn ich darüber nachdenke, wäre es vielleicht besser, es starttime+24*60*60durch etwas wie zu ersetzen date -d "13:00 tomorrow" +%s.

verwandte Informationen