linuxrookie223
Goto Top

Cronjob, Batchdatei zum starten und beenden einer Server Instance

Hallo; ich bräuchte Hilfe beim Umgang von Cronjob.
Bestimmt Simple für viele, aber ich verzweifle fast daran.

Es geht darum auf einen Server mit Debian GNU/Linux eine Server-Instance einmal täglich zu Starten und kurz vorher zu Beenden.
Im Web-Interface habe zwar die Möglichkeit Datum,Zeit und Intervall zu bestimmen, aber mit der Batchdatei komme ich dann nicht weiter. Habe mir schon einige Beispiel-Codes angesehen, diese waren doch meistens für Backups angefährtigt.
eigentlich habe zwei fragen bzw. bitten

1. mit was muss die Batchdatei enden? .bat wie bei DOS od. mit .sh
2. ein Beispiel-Code währe Super

ich gebe den pfad mal mit an
/home/userXY/ts2perlmod//ts2perlmod.pl -config=ts8000.ini

Content-Key: 76446

Url: https://administrator.de/contentid/76446

Ausgedruckt am: 28.03.2024 um 23:03 Uhr

Mitglied: theton
theton 21.12.2007 um 03:33:39 Uhr
Goto Top
Zuerstmal ist es vermutlich ein Shellskript das du haben willst.

#!/bin/bashcase "$1" instart) hier gehoert der Befehl zum Starten des Servers rein ;;stop) hier gehoert der Befehl zum Stoppen des Servers rein ;;*) dieser Abschnitt wird ausgeführt, wenn ein unbekannter Parameter beim Aufruf verwendet wird ;;esacexit 0

Womit die Datei endet ist absolut egal, solange sie ausführbar gemacht wird mittels

chmod ug+x /pfad/zu/deiner/datei.sh

Es ist aber üblich Shell-Skripte mit der Endung '.sh' zu versehen. Nun kannst du das Skript aufrufen mit /pfad/zum/skript.sh, wobei es die Parameter 'start' und 'stop' versteht. Zum stoppen des Servers benutzt du also einfach

/pfad/zum/skript.sh stop

und zum starten

/pfad/zum/skript.sh start

Das ganze kannst du dann z.B. wie folgt in die /etc/crontab eintragen, damit es einmal Nachts um 2:15 Uhr ausgeführt wird

15 2 * * * root /pfad/zum/skript.sh stop && /pfad/zum/skript.sh start > /var/log/serverrestart.log 2>&1

Das doppelte &-Zeichen zwischen den beiden Befehlen sorgt dafür, dass der zweite Befehl erst aufgerufen wird, wenn der erste fertig bearbeitet wurde. Der Server wird also zuerst beendet und danach gestartet. Der Zusatz nach den Befehlen ('> /var/log/serverrestart.log 2>&1') leitet sämtlichen Output des Skripts in die Datei /var/log/serverrestart.log um.

Für weitere Details siehe

man 1 crontab
man 5 crontab
man 1 bash
Mitglied: LinuxRookie223
LinuxRookie223 21.12.2007 um 04:09:21 Uhr
Goto Top
wow; um die Uhrzeit... ich Danke Dir!

auch Super erklärt!

jetzt habe ich nur noch eine frage: wie finde ich heraus mit welchen Befehl der Server gestoppt wird?

Zurzeit wird es ja nur gestoppt wenn ich Putty schliesse. Befehle wie z.b. exit - stop - kill od. ts2perlmod.pl -help od. nur -h haben nicht funktioniert.

ich kenne nur via PId (kill 22221) oder gibt es vielleicht noch eine andere möglichkeit?
Mitglied: LinuxRookie223
LinuxRookie223 21.12.2007 um 04:31:40 Uhr
Goto Top
ok habe doch noch was selbst entdeckt...

es ist ein startscript dabei das dem Beispiel sehr ähnelt und was jetzt mehr Sinn für mich macht face-wink

dennoch besten Dank nochmal!!