[Eisfair] script läuft nicht unter cron

Nelson Matias nelson at anires.de
Mo Mai 12 15:21:41 CEST 2025


Am 11.05.2025 um 11:55 schrieb Jürgen Pfautsch:
> Moin.
> Ich habe mir ein update-script gebaut, um wöchentlich automatisiert 
> updates auf 2 eis einspielen zu lassen.
> Dazu habe ich per fcron einen job angelegt.
> Der startet auch, bringt aber das script nicht zum Abschluss.
> Wenn ich das manuell starte, läuft es durch.
> Vermutlich kenne ich wieder mal cron-Besonderheiten nicht.
> Würde bitte ein Auskenner mal drüber schauen?

Auskenner bin ich nicht unbedingt ... aber mal schauen

> Vielen Dank!

Gern geschehen :-)

> Jürgen

Grundsätzlich schließe ich mich Marcus Meinung an. Ich verwende die 
Befehlstrennung mittels ; nur wenn ich in einer Zeile bleiben will, weil 
es eh schon sehr verschachtelt ist.

> #!/bin/bash
> #Updates mit reboot
> date
> /sbin/wol eisbackup #funtkioniert
> echo "Eis-Server Speicherplatz"; df -h
> sleep 5

dieses sleep ist sinnlos. Das würde nur etwas bringen, wenn du live die 
Ausgabe des scripts beobachten willst. Dann würde es die 5 Sekunden 
"Bedenkzeit" geben um evtl. das script abzubrechen. Da du es aber per 
cron startest, bringt es nichts. Das script wartet immer auf den 
Abschluss des df-Befehls. Ich würde hier sogar empfehlen /usr/bin/df zu 
nutzen.

> echo "Eis-Server Upgrade"; /usr/bin/eisman upgrade --auto #hier hängt es 
> schon, das upgrade passiert nicht.

Warum das nicht funktioniert, kann ich so nicht nachvollziehen.
Ich habe auch ein script gemacht wo "/usr/bin/eisman upgrade --auto" 
aufgerufen wird und das klappte auch mit cron.

> sleep 300
> echo "Eisbackup Update"; ssh root at eisbackup "/usr/bin/eisman update"
> sleep 10
> echo "Eisbackup Upgrade"; ssh root at eisbackup "/usr/bin/eisman upgrade -- 
> auto"
> echo "Eisbackup Speicherplatz"; ssh root at eisbackup df -h

echo "Eisbackup Speicherplatz"; ssh root at eisbackup "df -h"

> sleep 10
> date
> ssh root at eisbackup shutdown -h now

und auch hier sollte es "shutdown -h now" heißen.

Wie schon erwähnt. Die ganzen sleeps braucht es nicht. Es wird immer auf 
die Beendigung des vorangegangenen Befehls gewartet, bevor der nächste 
Befehl ausgeführt wird.

Falls du dieses script auch interaktiv nutzen willst, kann ich dir eine 
einfache Methode dafür zeigen und dir auch erklären was da genau gemacht 
wird. Dann kannst du das script sowohl per cron als auch manuell nutzen.

Es wäre mal interessant zu sehen was in der Mail denn drin steht. 
Welcher Fehler wird gemeldet?

Und was mir dabei natürlich auch einfällt: Du hast dein script schon für 
den user root eingetragen, oder? Einfache User dürfen kein upgrade machen.

-- 
Gruß
Nelson


Mehr Informationen über die Mailingliste Eisfair