Crontab und Kommandoersetzung
Hi, habe gerade ein merkwürdiges "Feature" des cron-Systems beobachtet: Um eine report-Datei zu initialisieren, möchte ich sie neu anlegen lassen und ein Timestamp eintragen: 6 10 * * 1,2,3,4,5 root \ 'echo `/bin/date +"%d.%m.%Y %H:%M:%S"`' >/var/log/xxxx egal, wie ich Hochkomma und Anführungszeichen anordne, also z.B. auch echo "`/bin/date +'..." oder "echo `/bin/date +'...", ich kriege immer den gleichen Fehler: /bin/sh: -c: line 1: unexpected EOF while looking for matching `'' /bin/sh: -c: line 2: syntax error: unexpected end of file das ganze auf der Konsole eingegeben, gibt ganz ordentlich: # sh -c 'echo `/bin/date +"%d.%m.%Y %H:%M:%S"`' 15.03.2007 10:32:17 # natürlich kann ich das ganze in ein script packen, dann wird es funzen, aber warum mag das der cron nicht??? jörg -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo, On Thursday 15 March 2007 10:43:01 Joerg Thuemmler wrote:
6 10 * * 1,2,3,4,5 root \ 'echo `/bin/date +"%d.%m.%Y %H:%M:%S"`' >/var/log/xxxx
Warum schreibst du nicht einfach 6 10 * * 1,2,3,4,5 root \ /bin/date +'\%d.\%m.\%Y \%H:\%M:\%S' >/var/log/xxxx
# sh -c 'echo `/bin/date +"%d.%m.%Y %H:%M:%S"`' 15.03.2007 10:32:17
6 10 * * 1,2,3,4,5 root \ sh -c 'echo `/bin/date +"\%d.\%m.\%Y \%H:\%M:\%S"`' geht ja auch. Habe aber auch erst mal kurz gestutzt, bis ich mich wieder an man 5 crontab und der darin enthaltenen % erinnert habe. :) Roman -- Roman Fietze Telemotive AG Büro Mühlhausen
Roman Fietze wrote:
Hallo,
On Thursday 15 March 2007 10:43:01 Joerg Thuemmler wrote:
6 10 * * 1,2,3,4,5 root \ 'echo `/bin/date +"%d.%m.%Y %H:%M:%S"`' >/var/log/xxxx
Warum schreibst du nicht einfach
6 10 * * 1,2,3,4,5 root \ /bin/date +'\%d.\%m.\%Y \%H:\%M:\%S' >/var/log/xxxx
# sh -c 'echo `/bin/date +"%d.%m.%Y %H:%M:%S"`' 15.03.2007 10:32:17
6 10 * * 1,2,3,4,5 root \ sh -c 'echo `/bin/date +"\%d.\%m.\%Y \%H:\%M:\%S"`'
geht ja auch.
Habe aber auch erst mal kurz gestutzt, bis ich mich wieder an
man 5 crontab
und der darin enthaltenen % erinnert habe. :)
Roman
Schnief..., daran konnte ich mich nur dunkel erinnern... aber ich habe locker angenommen, nicht innerhalb von Hochkommas, und es nicht nachgesehen ... DANKE allerdings kriege ich jetzt: "\15.\03.\2007-\12:\22", auch bei /bin/date +"\%d..." (echo hatte ich noch drin, weil ich evt. noch andere Dinge reintun wollte, ist aber egal) man kann natürlich einfach | tr -d '\\' anhängen, aber das heißt doch, daß cron zwar mittels "\" escaped, aber nicht richtig? ??? jörg -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Joerg Thuemmler schrieb:
Hi,
habe gerade ein merkwürdiges "Feature" des cron-Systems beobachtet:
Um eine report-Datei zu initialisieren, möchte ich sie neu anlegen lassen und ein Timestamp eintragen:
6 10 * * 1,2,3,4,5 root \ 'echo `/bin/date +"%d.%m.%Y %H:%M:%S"`' >/var/log/xxxx
^^^^^ 1. dumme Frage -> ohne Leerzeichen dazwischen ??? 2. dumme Frage du weisst, das EIN > alles vorherige ersetzt ? meinetest vielleicht >> als append ? 3. wieso echo .... date liefert doch schon ... muss man nur von der Konsole umlenken denke du könntest " date >> /var/log/blabla.log " meinen ??
egal, wie ich Hochkomma und Anführungszeichen anordne, also z.B. auch echo "`/bin/date +'..." oder "echo `/bin/date +'...", ich kriege immer den gleichen Fehler:
/bin/sh: -c: line 1: unexpected EOF while looking for matching `'' /bin/sh: -c: line 2: syntax error: unexpected end of file
das ganze auf der Konsole eingegeben, gibt ganz ordentlich:
# sh -c 'echo `/bin/date +"%d.%m.%Y %H:%M:%S"`' 15.03.2007 10:32:17 #
wenn es hier mit sh geht ... warum trägst du das dann nicht so ein ??? 6 10 * * 1,2,3,4,5 sh -c 'echo `/bin/date +"%d.%m.%Y %H:%M:%S"`' als crontab zeile ...
natürlich kann ich das ganze in ein script packen, dann wird es funzen, aber warum mag das der cron nicht???
jörg
denk mir, dass es gehen muesste.... beachte: " muesste..." Gruss Fred -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
participants (3)
-
Fred Ockert
-
Joerg Thuemmler
-
Roman Fietze