log script

Bash, Shell, PHP, Python, Perl, CGI
chris76
Posts: 1878
Joined: 2003-06-27 14:37
Location: Germering

log script

Post 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
tomek
Posts: 243
Joined: 2003-08-05 09:44
Location: Paderborn

Re: log script

Post 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.
chris76
Posts: 1878
Joined: 2003-06-27 14:37
Location: Germering

Re: log script

Post 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
tomek
Posts: 243
Joined: 2003-08-05 09:44
Location: Paderborn

Re: log script

Post by tomek »

Dann gib in deinem Script den absoluten Pfad zu killproc an.

z.B.: /sbin/killproc
chris76
Posts: 1878
Joined: 2003-06-27 14:37
Location: Germering

Re: log script

Post 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
captaincrunch
Userprojekt
Userprojekt
Posts: 7066
Joined: 2002-10-09 14:30
Location: Dorsten

Re: log script

Post by captaincrunch »

Dann ruf erstmal händisch /etc/init.d/syslog reload auf, da wirst du vermutlich die gleichen Fehlermeldungen bekommen.
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
tomek
Posts: 243
Joined: 2003-08-05 09:44
Location: Paderborn

Re: log script

Post 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..
chris76
Posts: 1878
Joined: 2003-06-27 14:37
Location: Germering

Re: log script

Post by chris76 »

@ CaptainCrunch

Also im manuellen aufruf passiert es nicht :-(

Ciao Christian
captaincrunch
Userprojekt
Userprojekt
Posts: 7066
Joined: 2002-10-09 14:30
Location: Dorsten

Re: log script

Post by captaincrunch »

In dem Fall siehe den Tip von Tomek
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
pong
Posts: 6
Joined: 2003-07-31 08:30

Re: log script

Post 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.
chris76
Posts: 1878
Joined: 2003-06-27 14:37
Location: Germering

Re: log script

Post 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
olaf.dietsche
Posts: 401
Joined: 2002-12-19 02:06
Location: Siegburg

Re: log script

Post 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.
chris76
Posts: 1878
Joined: 2003-06-27 14:37
Location: Germering

Re: log script

Post 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
olaf.dietsche
Posts: 401
Joined: 2002-12-19 02:06
Location: Siegburg

Re: log script

Post 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.