At-Job oder Cronjob

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
inne
Beiträge: 3289
Registriert: 29.06.2013 17:32:10
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

At-Job oder Cronjob

Beitrag von inne » 10.11.2015 18:36:47

... was ist in diesem Fall besser?

Welchen Job sollte ich in die Crontab eintragen?

Variante A:

Code: Alles auswählen

SHELL=/bin/bash
@hourly at -f ~/bin/foo.sh "now + $(($RANDOM\%60)) minutes"
Variante B:

Code: Alles auswählen

SHELL=/bin/bash
@hourly sleep $(($RANDOM\%3600)); ~/bin/foo.sh

Täglich 24 At-Jobs zu erstellen wäre auch noch eine Lösung, die ich aber nicht so mag, weil sich die nicht so gut handhaben lassen.

Benutzeravatar
MSfree
Beiträge: 11605
Registriert: 25.09.2007 19:59:30

Re: At-Job oder Cronjob

Beitrag von MSfree » 10.11.2015 19:01:51

cron ist für sich wiederholende Aufgaben gedacht, z.B. tägliches Backup, tägliches synchronisieren des eigenen Debianmirrors mit einem Quellmirror, tägliches löschen von Dateien aus dem /tmp-Verzeichnis etc.

at ist für einmalige Aufgaben, die man aber nicht während der normalen (Arbeits)zeit ausführen möchte, weil sie die Maschine so stark belasten, daß man nichts mehr nebenher machen kann. So kann man Jobs z.B. in die Nachtzeit verlegen, ohne daß man den Befehl selbst anstoßen muß.

Was du nimmst, hängt von deiner Aufgabe ab. Es wäre aber eher Mißbrauch von at, wenn man wiederholende Aufgaben dadurch simuliert, indem man am Ende eines at-Jobs sich selbst zum nächsten Zeitpunkt wieder aufruft.

inne
Beiträge: 3289
Registriert: 29.06.2013 17:32:10
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Re: At-Job oder Cronjob

Beitrag von inne » 10.11.2015 19:09:15

MSfree hat geschrieben: Was du nimmst, hängt von deiner Aufgabe ab.
Denke dir das Skript tut einfach zufällig true oder false aufrufen – als Beispiel natürlich ;-)

Vlt. sollte ich Variante B eintragen. Immerhin kamen mir ja selbst Zweifel an einen At-Job für dieses Zenario.
Es wäre aber eher Mißbrauch von at, wenn man wiederholende Aufgaben dadurch simuliert, indem man am Ende eines at-Jobs sich selbst zum nächsten Zeitpunkt wieder aufruft.
Das mag auf dem Papier funktionieren. Aber bleibt ein Job aus, ist die Kettenreaktion unterbrochen... Das ist keine Lösung.

Benutzeravatar
Meillo
Moderator
Beiträge: 9235
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: At-Job oder Cronjob

Beitrag von Meillo » 10.11.2015 19:44:15

inne hat geschrieben: Welchen Job sollte ich in die Crontab eintragen?

Variante B:

Code: Alles auswählen

SHELL=/bin/bash
@hourly sleep $(($RANDOM\%3600)); ~/bin/foo.sh
Ich wuerde Variante B nehmen, mit dem Gedankenmodell, dass ich jede Stunde (nach einer (kleinen) zufaelligen Verzoegerung) das Script starten will.


btw: Ohne Bashism bekommt man Zufallszahlen beispielsweise so: http://dev-tricks.net/bashism-how-to-ge ... out-random
Use ed once in a while!

Antworten