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

Antworten
Nachricht
Autor
micbur
Beiträge: 86
Registriert: 05. Jun 2004 15:55

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

#1 Beitrag von micbur » 01. Jul 2006 13:58

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
Beiträge: 1444
Registriert: 26. Jun 2004 21:18
Kontaktdaten:

#2 Beitrag von klopskuchen » 01. Jul 2006 14:46

Code: Alles auswählen

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
Beiträge: 86
Registriert: 05. Jun 2004 15:55

#3 Beitrag von micbur » 01. Jul 2006 15:07

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
Beiträge: 1444
Registriert: 26. Jun 2004 21:18
Kontaktdaten:

#4 Beitrag von klopskuchen » 01. Jul 2006 15:24

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
Beiträge: 86
Registriert: 05. Jun 2004 15:55

#5 Beitrag von micbur » 01. Jul 2006 15:32

klopskuchen hat geschrieben:
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

Antworten