IT

CronJob mit sudo-Rechten unter Ubuntu ausführen

Auf einem Ubuntu-Server wollte ich einen CronJob einrichten, der nachts den Apache-Webserver einmal neu startet. Leider braucht man dazu sudo-Rechte, da sich der Service sonst nicht neu starten lässt. Wie man das ganze mit Crontab löst erfährst du in diesem Artikel.

 

 

Service neu starten unter Ubuntu

Um einen Service wie den Apache-Webserver neu zu starten gibt es verschiedene Kommandos, z. B. so:

…oder auch so:

Wichtig ist, dass man dafür meistens sudo-Rechte benötigt!

 

CronJob einrichten unter Ubuntu

Um einen einfachen Befehl wie den Restart eines Services braucht man kein eigenes Skript schreiben. Man kann den Befehl einfach so mittels „crontab -e“ in die Crontab-Konfigurationsdatei einfügen.

Der Befehl für Service-Restart und Logging um 3 Uhr jede Nacht könnte so aussehen:

Wenn man sich das ganze mitloggt, sieht das Ergebnis z. B. im Fall vom Apache-Restart so aus:

Restarting apache2 (via systemctl): apache2.service failed!

Wenn man einen Befehl mit sudo im normalen Crontab, den man mit „crontab -e“ bearbeiten kann, hinzufügt, wird dieser aufgrund der fehlenden Passworteingabe schlicht auf denselben Fehler laufen:

 

 

CronJob mit sudo-Rechten starten

Die Lösung ist relativ simpel: Man muss „crontab -e“ bereits mit sudo-Rechten, also „sudo crontab -e“, ausführen! Dann wird einem das Crontab-File des Root-users angezeigt. Dieser hat nämlich ein eigenes Crontab-File. Das Crontab-File aus dem normalen Profil hat grundsätzlich keine sudo-Rechte. Dort drin sind nur Befehle richtig aufgehoben, die ohne diese Rechte auskommen.

Das Crontab-File des Root-users wird vermutlich bis auf die Description komplett leer sein. Wenn man hier den Befehl einfügt und sich das ganze wegloggt, dann wird auch der Restart von Services ohne Probleme funktionieren. Das Ergebnis sieht dann so aus:

Restarting apache2 (via systemctl): apache2.service.

Da die CronJobs aus diesem Crontab sowieso mit sudo-Rechten unter dem Benutzer root ausgeführt werden, benötigt man hier auch keinen vorangestellten sudo-Befehl:

 

Tobias Langner

Tobias Langner

Ich arbeite seit mehreren Jahren als Software-Release-Manager, zuvor als IT-Administrator, bin ausgebildeter Fachinformatiker für Systemintegration und Studium-"Pausierer" an der FernUni Hagen. Achtung: Für die Richtigkeit der zur Verfügung gestellten Informationen, Skripte, etc. übernehme ich keine Gewähr. Deren Nutzung geschieht ausdrücklich auf eigene Gefahr!

Alle Beiträge ansehen von Tobias Langner →

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert