syraneus
Goto Top

Teamspeak 2 - Skript gibt falsche Meldung zurück

Hallo,

ich habe einen vServer gemietet. auf diesem V-Server läuft SUSE Linux 10.3. Auf diesem Server habe ich unter anderem einen Teamspeak 2 Server laufen.
Ich habe ein Skript geschrieben das den status täglich 1 mal abfragt. Wenn ich das was in dem Skript steht per Hand ausführe funktioniert es einwandfrei.
In Teamspeak ist ein Skript vorhanden mit dem man den Status abfragen kann. Dieses Skript verwende ich. Als antwort steht auf der Kommandozeile

The server seams to be running.

Soweit so gut. Jedoch wenn ich das von dem Skript ausführen lasse und mir das Skript das dann per mail zusendet steht in dem Text der Mail

The server seams to be stopped.

Jedoch der Server läuft. Hat jemand ne ahnung wieso die Meldung kommt, wenn ich das ganze von einem Skript ausführen lasse? Der Server selber läuft aber die Antwort die in dem Skript steht ist eine Falsche.

Über einen Cronjob lasse ich das Skript 1 mal am Tag ausführen.
Das Kommando habe ich als root auf dem server ausgeführt. Das Skript habe ich als root in das cron-verzeichnis geschoben.


Schon mal vielen dank für die Hilfe

mfg DerChirurg

Content-Key: 116367

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

Printed on: April 26, 2024 at 20:04 o'clock

Member: theton
theton May 19, 2009 at 16:23:00 (UTC)
Goto Top
Zuerstmal solltest du in die Logs schauen ob es dort irgendwelche Fehler/Warnungen vom Cron-Daemon gibt. Wenn dort nichts zu finden ist, wirst du wohl das Skript posten müssen, da dir sonst kaum jemand sagen kann woran es scheitert. Auch das Eintragen eines MAILTO in die crontab kann hilfreich sein, damit du die Fehlermeldungen von den Cronjobs zugeschickt bekommst.
Member: Syraneus
Syraneus May 19, 2009 at 20:46:19 (UTC)
Goto Top
Hi,

natürlich häng ich den Skript an. War nur als ich den eintrag gemacht hab in der arbeit und von dort bin ich nicht auf meinen server gekommen.

hier der Skript


#!/bin/bash
touch /home/ts/tss2_rc2/tageslog
chmod +rwx /home/ts/tss2_rc2/tageslog
chmod g-rwx /home/ts/tss2_rc2/tageslog
chmod o-rwx /home/ts/tss2_rc2/tageslog
/home/ts/tss2_rc2/teamspeak2-server_startscript status >> /home/ts/tss2_rc2/tageslog
echo "Der Taegliche Statusreport fuer den TS-Server" | mail -s "Taeglicher Statusreport fuer den TS-Server" -a "/home/ts/tss2_rc2/server.log" xxx@xxx.xxx
echo "Der Zustand des TS-Servers" | mail -s "Der Zustand des TS-Servers" -a "/home/ts/tss2_rc2/tageslog" xxx@xxx.xxx
rm /home/ts/tss2_rc2/tageslog


Ich sehe in diesem Skript keinen Fehler. Die E-mail wird einwandfrei verschickt. für verbesserungen bin ich jederzeit offen.

Wenn ich genau den selben Befehl als root auf der konsole ausführe kommt die meldung

The Server seems to be running.

So sieht eine E-mail aus, die mir das system schickt.



Der Zustand des TS-Servers


the server seems to be stopped


Wie mache ich das mit der statusmail von cron? kannst du das mal bitte genauer erklären?

mfg DerChirurg
Member: theton
theton May 19, 2009 at 20:55:12 (UTC)
Goto Top
Das von Cron sind keine Status-Mails, sondern eine Weiterleitung der Outputs von Cronjobs. Dazu trägt man einfach in der crontab am Anfang

MAILTO=admin@domain.tld

ein und verzichtet auf Ausgabeumleitungen für den Error-Output (also z.B. kein '2>&1' o.ä. an's Ende anhängen). Gibt es dann einen Output von einem Cronjob, wird dieser automatisch an die angegebene Adresse geschickt.

In dem Skript sehe ich auch erstmal nichts problematisches. In den Systemlogs steht auch keine Warnung o.ä. von den Crons? Ich kann mir eigentlich nur vorstellen, dass die Status-Abfrage u.a. irgendwelche Umgebungsvariablen nutzt, die bei Cronjobs nicht zur Verfügung stehen. Schliesslich dürfte ja 'teamspeak2-server_startscript' auch nur ein Skript sein, das evtl. irgenwelche Umgebungsvariablen voraussetzt. In dem Fall musst du dein Skript einfach explizit mit einer Login-Shell aufrufen (bash -l meinskript.sh).