Veröffentlicht 12. September 200124 j 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??
12. September 200124 j 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>
13. September 200124 j 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
13. September 200124 j hmm, ich hatte schon div. probleme mit dem cron, das er die crontab nicht neu ausliest: /sbin/init.d/cron restart
13. September 200124 j <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
13. September 200124 j <BLOCKQUOTE><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Zitat:</font><HR>12 * * * * root /usr/sbin/mailsenden
14. September 200124 j @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>
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.