Time-Trigger-Bash erstellen - Zeit des letzten Aufrufs merken

Post Reply
Message
Author
micbur
Posts: 86
Joined: 05. Jun 2004 15:55

Time-Trigger-Bash erstellen - Zeit des letzten Aufrufs merken

#1 Post by micbur »

Hallo,

mein Webhoster erlaubt mir einen Cronjob zu erstellen bzw. das ist in meinem Hostingpaket enthalten. Nun habe ich aber mehr als nur einen Job zu tun. Dafür habe ein Shell-Script geschrieben. Allerdings gibt es Jobs, die länger dauern, als mein Intervall gewählt ist.

Daher meine Frage, wie man da vorgehen könnte, Script zu schreiben, dass wie ein Time-Trigger funktioniert.

Ich müsste also mir über mehrere Shellaufrufe hinweg mir merken, wann ein Job das letzte mal gestartet wurde. Aber wie mache ich das?

Ich suche also momentan eher Idden, als fertige Script. Das will ich ja auch alleine schreiben ;-)

Hat jemand eine tolle Idee?

Ciao, micbur

klopskuchen
prolinux-forum-admin
Posts: 1444
Joined: 26. Jun 2004 21:18
Contact:

#2 Post by klopskuchen »

Code: Select all

wenn: (inhalt_lockfile == 1)
	Abbruch;
wenn&#58; &#40; &#40;TIME - TIMEVAR&#41; < Intervall &#41;
	Abbruch;

schreibe 1 nach lockfile;
tu_was&#40;&#41;
export TIMEVAR = "irgendwas mit date";
schreibe 0 nach lockfile
TIMEVAR kann natürlich auch ein String in einer Datei sein statt einer Umgebungsvariable, je nach Umfeld.


MfG, Klopskuchen
When all else fails, read the instructions .

micbur
Posts: 86
Joined: 05. Jun 2004 15:55

#3 Post by micbur »

Hmmm, export funktioniert aber nur, wenn der Cronjob nicht in einer extra Shell ausgeführt wird. Ich bin aber ein anderer Nutzer als der Cronjob. Es ist wahrscheinlich, dass eine extra Shell benutzt wird.

Meinst du nicht?

Aber danke für die Idee.

Das mit der Datei habe ich mir auch schon überlegt, aber dann fiel mir nur ein, dass ich noch nicht weiß, wie ich eine Datei in der Shell auslesen kann. Java ist auch nicht installiert, sonst wäre ich ja schon beinache fertig ;-)

Ciao, micbur

klopskuchen
prolinux-forum-admin
Posts: 1444
Joined: 26. Jun 2004 21:18
Contact:

#4 Post by klopskuchen »

Hmmm, export funktioniert aber nur...
Das ist nur eine Möglichkeit. Obiges stellt keinen Anspruch auf Richtigkeit oder Vollständigkeit. Waren eben nur die ersten Gedanken dazu. Wichtig ist nur zwei Gegebenheiten zu testen:
- ins lockfile (oder Prozesstabelle) gucken ob "ich" sowieso gerade laufe
- ist die Zeit seit letzter Ausführung ran bzw. ist die aktuelle Zeit minus der der letzten Ausführung groß genung um erneut auszuführen
Wo du die Werte sicherst (export oder Datei) ist ja Wurscht.
wie ich eine Datei in der Shell auslesen kann
VAR=`cat lockfile` VAR enthält dann entweder eine 0 oder eine 1.
Einen String (zB. `date`) kannst du mit cut oder awk zerlegen.


MfG, Klopskuchen
When all else fails, read the instructions .

micbur
Posts: 86
Joined: 05. Jun 2004 15:55

#5 Post by micbur »

klopskuchen wrote:
VAR=`cat lockfile`
Arhhg, ja, mit date mache ich das ja zu Hauf. Manchmal ist man wie ein Brett, starr und undurchsichtig.

Wenn das klappt, kann ich ja für jeden Job meine eigene runtime-Tabelle nutzen.
proc1:time1
proc2:time2
...

Naja, mal schaun.

Danke, micbur

Post Reply