Hallo,
Ich habe Probleme mit Einträgen im Cron, die mit Ersetzungen arbeiten:
0 23 * * * /usr/bin/crontab -l > $HOME/data/crontabs/crontab_`date +'%d_%m_%Y'`.bak
meckert mich an:
/bin/sh: -c: line 1: unexpected EOF while looking for matching ``' /bin/sh: -c: line 2: syntax error: unexpected end of file
In einer normalen bash funtioniert es natürlich anstandslos .... Was versteht der Cron hier nicht?
Achso:
X-Cron-Env: <SHELL=/bin/sh> X-Cron-Env: <HOME=/home/pummel> X-Cron-Env: <PATH=/usr/bin:/bin> X-Cron-Env: <LOGNAME=pummel>
und: pummel > ll /bin/sh lrwxrwxrwx 1 root root 4 Oct 30 17:15 /bin/sh -> bash
Das Gleiche bei: 0 4 * * * /usr/bin/lynx -source "http://loghost/intranet/specials/statistics_neu/auswertung_tag.php?monat=%60... +'%m'`&jahr=`date +'%Y'`" > /usr/local/www/htdocs/intranet/specials/statistics1/tagesstatistik_`date +'%b.%Y'`.html
Mit freundlichen Grüßen
Jens Puruckherr 1
On Thu, 20 Feb 2003 08:24:59 +0100, Jens Puruckherr wrote:
Ich habe Probleme mit Einträgen im Cron, die mit Ersetzungen arbeiten:
0 23 * * * /usr/bin/crontab -l > $HOME/data/crontabs/crontab_`date +'%d_%m_%Y'`.bak
meckert mich an:
/bin/sh: -c: line 1: unexpected EOF while looking for matching ``' /bin/sh: -c: line 2: syntax error: unexpected end of file
In einer normalen bash funtioniert es natürlich anstandslos .... Was versteht der Cron hier nicht?
man 5 crontab:
The ``sixth'' field (the rest of the line) specifies the command to be run. The entire command portion of the line, up to a newline or % character, will be executed by /bin/sh or by the shell specified in the SHELL variable of the cronfile. Percent-signs (%) in the command, unless escaped with backslash (), will be changed into newline charac- ters, and all data after the first % will be sent to the command as standard input.
Wo hast du gelesen, wie die crontab aussehen darf? Nur in Beispielen, stimmts?
Reinhard
On Thu, Feb 20, 2003 at 08:24:59AM +0100, Jens Puruckherr wrote:
Hallo,
Ich habe Probleme mit Einträgen im Cron, die mit Ersetzungen arbeiten:
0 23 * * * /usr/bin/crontab -l > $HOME/data/crontabs/crontab_`date +'%d_%m_%Y'`.bak
Der Zeilenumbruch gehört nicht rein. Und die %-Zeichen werden in Crontab-Einträgen zu Zeilenumbrüchen gemacht.
Heiko
On Thu, Feb 20, 2003 at 08:24:59AM +0100, Jens Puruckherr wrote:
Hallo,
Ich habe Probleme mit Einträgen im Cron, die mit Ersetzungen arbeiten:
0 23 * * * /usr/bin/crontab -l > $HOME/data/crontabs/crontab_`date +'%d_%m_%Y'`.bak
meckert mich an: ...
Nur noch eine allgemeine Bemerkung von mir, die anderem Antworten gehen genauer auf dieses Problem ein.
Da das Kommando in der Zeile ggf. nicht mit der Bash sondern mit /bin/sh ausgeführt wird, bin ich dazu übergegangen in der crontab nur eine Script ohne Argumente aufzurufen. In diesem Script kannst du dann machen was du möchtest. Das hat außerdem den großen Vorteil, dass du das Script ohne Cron testen kannst.
thomas
lug-dd@mailman.schlittermann.de