PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : crontab führt befehle nicht richtig aus


gine
2006-11-16, 15:39:17
Hallo Ihr,

Ich komme hier nicht weiter und bin am Verzweifeln.

Ich habe ein Script welches sich Problemlos als normaler User ausführen lässt, in diesem rufe ich den Status eines dbservers auf. Also mache ich als User nichts anderes als:

dbfree > /dbd/status.txt

dies funktioiert als User "so" auch wunderbar und ich bekomme folgenden Inhalt:
data base size 16,386,300 free 14,360,112 = 88%, freelist 4,017

Wenn ich dieses Script nun im crontab ausführen lasse, bekomme ich zwar auch eine Ausgabe in der Datei, jedoch werden die Zahlen nach dem Komma abgeschnitten. Das ganze sieht dann so aus:
data base size 16 free 14 = 88%, freelist 4

ich habe nun schon anhand PATH versucht die Umgebunsvariablen vom User "so" mitzugeben, klappt nicht. Auch das verwenden einer anderen SHELL bringt keinen Erfolg.

Ich bin für JEDEN Tipp mehr als dankbar!!!

vielen lieben Dank

gentoo
2006-11-16, 15:44:43
crontab einträge werden als root ausgeführt,
probier doch mal das skript als root zu starten und schau obs daran liegt.

lg,
gentoo

gine
2006-11-16, 15:48:26
Hiho,

als root passiert genau das gleiche, auch wenn ich die cron im crontab unter root eintrage ergibt das nichts.

Sprich, die Komma und die Zahlen hinter diesen, fehlen

gentoo
2006-11-16, 16:05:53
Dann gib in deinem Skript folgendes zuerst an.

su Username

dann führst du den Rest als jener Benutzer aus.
lg,
gentoo

Edit:
Als root brauchst du kein Passwort für su.

gine
2006-11-16, 16:12:21
data base size 16 free 14 = 88%, freelist 4

leider nein :/

die cron wird doch sobald ich sie als user anlege sowieso als user abgearbeitet.

es scheint irgendwas mit den Umgebungsvariablen zutun zu habne... Aber trotzdem, Danke!

Harleckin
2006-11-17, 10:48:56
Nun ja, eigentlich trägt man in die systemweite /etc/crontab nichts weiter ein.

Als User geht man wie folgt vor..


$ export EDITOR=vi
$ crontab -l
$ crontab -e


Der Cronjob wird unter /var/cron abgelegt und im Kontext des Nutzers ausgeführt.
Ansonsten poste mal den Cronjob.

ThePsycho-Gast
2006-11-17, 12:47:20
Versuchs doch mal so: Mit "set" alle Umgebungsvariablen anzeigen lassen und in dem Skript manuell setzen lassen.
Wenn es dann geht, weisst du schonmal, dass du richtig liegst.

Ansonsten evtl checken, ob man bei dem Programm, dass du aufrufst, die Ausgabe manuell definieren kann.

Und was mir noch einfällt: Je nach locale wird die Ausgabe mit "." oder mit "," angegeben - ich weiss ja nicht, wie du die Ausgabe bearbeitest, aber das könnte der Knackpunkt sein.

Gast
2006-11-17, 13:42:26
Je nach locale wird die Ausgabe mit "." oder mit "," angegeben - ich weiss ja nicht, wie du die Ausgabe bearbeitest, aber das könnte der Knackpunkt sein.Das wäre auch meine Vermutung gewesen, dass unter crontab eine andere locale verwendet wird.

Was ist denn eigentlich dbfree? Ist das ein Script? Zu welcher Datenbank gehört das?

OssiMitHerz
2006-11-17, 14:32:52
Setze in deinem Skript alle nötigen Umgebungsvarieblen und mache einen export auf die nötigen Variablen