Wolle Geschrieben 12. September 2001 Geschrieben 12. September 2001 Hi, ich versuche gerade einen Cronjob zu erstellen. Ich habe ein Shellscript geschrieben, das ich über einen Cronjob aufrufen will. Das Script verschickt per Mutt eine Mail mit einer Datei im Attachment, löscht dann diese Datei und bootet den Rechner neu. Wenn ich das Script von Hand aufrufe läuft es einwandfrei. Beim Aufruf über die Crontab bekomme ich immer die Meldungen Command not found als Mail an root. Ich hab es mit absoluten Pfaden, nur dem Dateinamen, mit ./ vornedran und ohne probiert. Immer das gleiche Ergebnis. Auf dem Script sind volle Rechte (777). Ich hab auch schon versucht das Script in verschiedene Pfade zu packen (in /usr/sbin, /usr/bin und sogar in /). Der Aufruf sieht im Moment so aus: 12 * * * * root /usr/sbin/mailsenden Ich benutze Suse 7.1. Hat einer eine Idee woran das liegen könnte??
multimac Geschrieben 12. September 2001 Geschrieben 12. September 2001 Hast Du den absoluten Pfad zur Shell und zu Mutt in dem Shellskript gesetzt ?
DevilDawn Geschrieben 12. September 2001 Geschrieben 12. September 2001 Bedenke, das die Umgebung in der cron abläuft, nicht deiner Arbeitsumgebung entspricht. Setz im Script vorher Pfade oder benutze nur absolute Pfade, auch für erstellte Dateien (die auf generell nach /var/tmp/ gehören, mit mktemp erstellt werden sollten und nach gebrauch gelöscht werden sollten). Ein Auswertescript würde z.B. dieses machen: #!bin/sh LOG=/var/log/somelog PARSER=/usr/local/bin/someparser OPTS="-1 -l 12 -T foo" MAILX=/usr/bin/mailx TMPFILE=`mktmp /var/tmp/mail.XXXXXX` || exit 1 # Use Parser on Log and pipe output nach /var/tmp/ ${PARSER} ${OPTS} ${LOG} > ${TMPFILE} # Send parsed log as mail ${MAILX} -s "Logauswertung" user@host < ${TMPFILE} # delete tempfile and exit rm -f ${TMPFILE} exit 0 Mach dir einfach mal ein Cronjob der nur "env" ausführt, dann siehst du welche Bedingungen in deiner cron-umgebung existieren. <FONT COLOR="#a62a2a" SIZE="1">[ 12. September 2001 23:14: Beitrag 1 mal editiert, zuletzt von DevilDawn ]</font>
Wolle Geschrieben 13. September 2001 Autor Geschrieben 13. September 2001 Hmmm... Die Pfade im Script hatte ich alle absolut angegeben, bis auf den zu Mutt. Jetzt hab ich den Pfad zu Mutt auch absolut drin, gleiches Ergebnis. @Devil: Ich erstelle keine temp-Datei, sondern verschicke die Orginal Logg-Datei, die nach dem verschicken dann auch gelöscht wird (aus Platzgründen). Irgendwie glaube ich inzwischen, das da irgendwo was ganz schwer verbogen ist Ich bekomme jetzt auch bei den Cron-Jobs die standartmäßig drin sind (z.B. test -x /usr/lib/cron/run-crons && /usr/lib/cron/run-crons) die Meldung command not found
souse Geschrieben 13. September 2001 Geschrieben 13. September 2001 hmm, ich hatte schon div. probleme mit dem cron, das er die crontab nicht neu ausliest: /sbin/init.d/cron restart
multimac Geschrieben 13. September 2001 Geschrieben 13. September 2001 <BLOCKQUOTE><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Zitat:</font><HR>Irgendwie glaube ich inzwischen, das da irgendwo was ganz schwer verbogen ist Ich bekomme jetzt auch bei den Cron-Jobs die standartmäßig drin sind (z.B. test -x /usr/lib/cron/run-crons && /usr/lib/cron/run-crons) die Meldung command not found
multimac Geschrieben 13. September 2001 Geschrieben 13. September 2001 <BLOCKQUOTE><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Zitat:</font><HR>12 * * * * root /usr/sbin/mailsenden
Wolle Geschrieben 14. September 2001 Autor Geschrieben 14. September 2001 @souse: Daran liegt's nicht, ich hatte den Cron nach jeder Änderung neu gestartet. <BLOCKQUOTE><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Zitat:</font><HR>Original erstellt von multimac: <STRONG> Ggf. hilft auch das Setzen von Umgebungsvariablen in /etc/crontab (könnte auf Deinem (Linux? BSD? Anderes?) System anders sein) ala SHELL=/bin/sh PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin</STRONG>
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden