Frage von nickstop, 32

Garrys mod cronjob?

Hallo,

Ich möchte meinen Server um 4/8/12/16/22 Uhr neu starten. Das ganze geht wie ich gelesen habe via. Crontab. Die Datei soll als gmod ausgeführt werden und befindet sich im homeverzeichnis von gmod. Die datei heißt ./gmodstart und hat die variable "restart" zum restarten. Also manuell wäre es als user gmod ./gmodstart restart

Wenn jemand via Teamspeak alles erklären kann: derttt.ts3index.de

DANKE im vorraus!

Expertenantwort
von guenterhalt, Community-Experte für Linux, 27

via. Crontab.  

nein! via cron . Die Datei /etc/crontab ist lediglich eine Datei, aus der das Programm cron die Daten holt.

Für diese Datei sollte es auf jedem Computer ein Manual geben:

man crontab

Die Datei soll als gmod ausgeführt werden

was ist gmod ? So etwas habe ich noch nicht gehört.

Vielleicht ist gmod ein User, dann aber "soll durch gmod ausgeführt werden"

Als Cron-Job ( Eintrag in der Datei /etc/crotab )

0 4,8,12,16,22 * * *  gmod /home/gmod/gmodstart restart

0 ( Null)            Minute
4,8,12,16,22    Stunden
*                       jeden Tag
*                       jeden Monat
*                       jedes Jahr

gmod               durch User gmod
/home/gmod/gmodstart  Pfad+Befehl der ausgefügrt werden soll
restart              Parameter zum Befehl



Kommentar von nickstop ,

Danke für die Hilfe, leider funktioniert es nicht!

Kommentar von guenterhalt ,

teste zuerst die cron-Funktion , z.B. mit

0,5,10,15,20,30,40,50  17,18,19,20,21,22,23 * * *   gmod  touch /home/gmod/test

damit sollte alle 5 Minuten der Zeitstempel der Datei test neu gesetzt werden

ls -l /home/gmod/test

solle das anzeigen.

Wenn das nicht funktioniert, dann könnte es gmod nicht geben oder /home/gmod existiert nicht.

Das geht dann mit dem Script dann natürlich auch nicht.

.

Kommentar von nickstop ,

Danke für deine Bemühungen. Leider hat das auch nicht funktioniert... Archiv existiert User gmod existiert auch. Kann das sein, dass Cron nicht richtig installiert ist?

Kommentar von guenterhalt ,

wenn ls -l nicht funktioniert, ist das noch verständlich, denn cron kennt keine PATH-Variable ( daran hatte ich wohl nicht gedacht)
Schreibe ls mit vollem Pfad, also :   /usr/bin/ls -l

Cron sollte schon und auch richtig installiert sein.

Der Befehl

ps -Af | grep cron 

sollte etwa so etwas  ausgeben:

root 2388 1 0 07:52 ? 00:00:00 /usr/sbin/cron -n
root 4908 4749 0 07:57 pts/1 00:00:00 grep --color=auto cron

( Die zweite Zeile hat mit cron nichts zu tun, sie kommt durch "grep cron")

Kommentar von nickstop ,

Dieser Befehl gibt bei mir folgendes aus:

root       221     1  0 Jul21 ?        00:00:00 /usr/sbin/cron -f

root 28764 28762 0 12:14 pts/1 00:00:00 grep cron
Kommentar von guenterhalt ,

warum bei dir cron -f angezeigt wird, weiß ich nicht. Der Parameter -f ist nach meiner man-page ( man cron) gar nicht definiert. Vielleicht hat Ubuntu auch da wieder etwas geändert. Rufe mal das manual auf und siehe nach, was -f bedeutet.

Hast du das mit /usr/bin/ls -l auch mal getestet?

Wenn das funktioniert, dann funktioniert auch cron.

Wenn es mit  gmodstart nicht funktioniert, dann sind das mit Sicherheit die fehlenden Umgebungsvariablen. Beim Aufruf von einer Konsole sind die Vorhanden, bei cron aber nicht.

Solche Variable kannst du auch in der Datei /etc/crontab definieren

Rufe die für den User gmod definierte PATH-Variable auf

echo $PATH 

und trage in /etc/crontab ganz vorn die Zeile

export PATH=$PATH:<Zeichenkette-vom-echo-Befehl> 

ein

 oder aber in gmodstart alle Befehle mit dem vollem Pfad eintragen.

( z.B. cp durch /usr/bin/cp ersetzen )

 

Keine passende Antwort gefunden?

Fragen Sie die Community