Page 1 of 1

log script

Posted: 2003-08-07 08:45
by chris76
Tach ich habe mir ein scripte geschrieben was meine logs nach stichwörtern durchsucht, mir diese zumailt und dann logrotate ausführt.
(Ich lese die logs unter tags dann noch selber durch, will nur in der früh informiert sein was los ist)

Wenn ich dieses Script von hand starte läuft alles astrein durch wenn ich es aber vom Cron starten lasse bekomme ich folgende Fehlermeldung

Code: Select all

/etc/init.d/syslog: line 81: killproc: command not found
/etc/init.d/syslog: line 82: killproc: command not found
/etc/init.d/syslog: line 83: killproc: command not found
/etc/init.d/syslog: line 84: killproc: command not found
..failederror running shared postrotate script for /var/log/allmessages /var/log/localmessages /var/log/firewall 
das postrotatescript ist eigentlich nur folgender Standardmässiger eintrag im /etc/logrotate.d/syslog

Code: Select all

 /etc/init.d/syslog reload
.

Ich komme leider nicht darauf woran das liegen kann?
Hat jemand eine Idee?

Danke Ciao CHristian

Re: log script

Posted: 2003-08-07 09:13
by tomek
Der Fehler steht doch da :)

Code: Select all

/etc/init.d/syslog: line 81: killproc: command not found
usw.

Das Programm "killproc" existiert nicht oder ist nicht in der PATH-Variable.

Re: log script

Posted: 2003-08-07 09:22
by chris76
Ja das der Fehler da steht ist mir klar, aber manuell aufgerufen gehts, per cron nicht, und das versteh ich nicht !!

Ciao Christian

Re: log script

Posted: 2003-08-07 09:31
by tomek
Dann gib in deinem Script den absoluten Pfad zu killproc an.

z.B.: /sbin/killproc

Re: log script

Posted: 2003-08-07 09:40
by chris76
wie schon oben geschrieben

das steht im etc/logrotate.d/syslog

Code: Select all

/etc/init.d/syslog reload
Manuell aufgerufen ok - mit cron Fehler, das kann NICHT an den Pfaden liegen

Re: log script

Posted: 2003-08-07 09:47
by captaincrunch
Dann ruf erstmal händisch /etc/init.d/syslog reload auf, da wirst du vermutlich die gleichen Fehlermeldungen bekommen.

Re: log script

Posted: 2003-08-07 09:48
by tomek
Doch das kann daran liegen. :wink:

In der Datei /etc/crontab ist extra eine Pfadvariable angegeben, wie z.B.:

Code: Select all

PATH=/sbin:/bin:/usr/sbin:/usr/bin
Kannst ja überprüfen ob killproc sich in diesen Pfaden befindet, die dort bei dir angegeben sind.

Was mir noch einfällt, wäre, dass du deinem Script noch die Init-Functions mitgibst:

Code: Select all

# Source function library.
. /etc/init.d/functions
Ã?ndere evtl. den Pfad/Ort..

Re: log script

Posted: 2003-08-07 11:26
by chris76
@ CaptainCrunch

Also im manuellen aufruf passiert es nicht :-(

Ciao Christian

Re: log script

Posted: 2003-08-07 11:32
by captaincrunch
In dem Fall siehe den Tip von Tomek

Re: log script

Posted: 2003-08-08 09:27
by pong
Schau mal als welcher Benutzer du angemeldet bist wenn du das Script von hand startest und von welchem Benutzer das Script vom Cron ausgeführt wird. Hatte vor Kurzem ein ähnliches Problem. Konnte ein Script zwar als Root ausführen, nicht aber als normaler Benutzer, weil im PATH dieses Benutzers eine Pfadangabe gefehlt hat die ROOT aber hatte. Oder Cron hat nicht die entsprechenden Rechte um das Programm auszuführen.

Re: log script

Posted: 2003-08-29 16:42
by chris76
Also der Tip von Tomek hat leider nix gebracht.
Der cronjob läuft als root!
Oder Cron hat nicht die entsprechenden Rechte um das Programm auszuführen.
wie kann ich das denn überprüfen?
Manuell auf der Konsole geht´s, das script auf der Konsole aufrufen geht auch, aber als Cron geht nix?

Danke nochmal

Ciao Christian

Re: log script

Posted: 2003-08-29 19:49
by olaf.dietsche
Hat deine root crontab am Anfang eine Zeile, die den PATH enthält? z.B.

Code: Select all

PATH=/sbin:/usr/sbin:/usr/bin:/bin
oder so ähnlich. Wenn nicht, dann füge diese Zeile ein.

Re: log script

Posted: 2003-08-29 20:35
by chris76
Hallo Olaf

Code: Select all

46 8 * * * /etc/init.d/syslog reload
so sieht er jetzt aus.

Code: Select all

46 8 * * * /etc/init.d/syslog reload PATH=/sbin:/usr/sbin:/usr/bin:/bin
und so sollte er aussehen?

Ciao CHristian

Re: log script

Posted: 2003-08-30 00:41
by olaf.dietsche
Ja, so sollte es aussehen. Eventuell muß die PATH Zeile als erstes kommen, aber das kannst du ja einfach ausprobieren.

Wichtig ist vor allem, daß im PATH das Verzeichnis ist, in dem killproc vorkommt. Wenn also killproc unter /opt/bin steht, dann muß der Eintrag so

Code: Select all

PATH=/sbin:/usr/sbin:/usr/bin:/bin:/opt/bin
46 8 * * * /etc/init.d/syslog
aussehen.