Re: std{err,out}-Umleitung in Cronjobs

From: Oliver Fromme <olli(at)secnetix.de>
Date: Wed, 11 Jul 2001 12:12:20 +0200 (CEST)

Roland Jesse <jesse(at)mail.cs.uni-magdeburg.de> wrote:
> -------------------------------------------------
> PATH=/usr/bin:/usr/sbin:/usr/local/bin
> LOGDIR=/var/tmp
> TODAY=`date "+%Y-%m-%d"`
> LOG_ME=${LOGDIR}/${TODAY}-me
          ^^^^^^^^^^^^^^^^^^
>
> # rumtesten
> 35 9 * * * echo "foobar" > $LOG_ME
> -------------------------------------------------

In den Zeilen der crontab, in denen Du Variablenwerte zu-
weist, werden Variablen _nicht_ expandiert. "$" ist dort
wirkungslos.

> Alles, was der Cronjob per Mail dazu sagt, ist:
>
> cannot create ${LOGDIR}/${TODAY}-me: directory nonexistent
>
> /var/tmp existiert natürlich.

Ja, aber '${LOGDIR}' (wörtlich, nicht der Inhalt der Vari-
ablen!) existiert nicht.

> Viel einfacher geht es doch eigentlich kaum noch. Und interaktiv in
> der Shell (/bin/sh) funktioniert es.

Ja, die Shell expandiert Variablen ja auch (fast) überall.

Du könntest den gesamten Ausdruck in die Job-Zeile schrei-
ben:

   35 9 * * * echo "foobar" > ${LOGDIR}/${TODAY}-me

Dann muß nur noch die Shell expandieren (das Kommando wird
ja per Default einer /bin/sh übergeben).

Eine andere Möglichkeit wäre, daß Du die Ausgabeumleitung
überhaupt nicht in der crontab machst, sondern im Shell-
Script, daß Du da aufrufst. Dazu muß es einfach wie folgt
beginnen:

   #!/bin/sh -
   LOGDIR=/var/tmp
   TODAY=`date "+%Y-%m-%d"`
   LOG_ME=${LOGDIR}/${TODAY}-me
   exec > $LOG_ME
   ...
   ...

Ich würde diese Möglichkeit vorziehen, weil es flexibler
ist.

Gruß
   Olli

-- 
Oliver Fromme, secnetix GmbH & Co KG, Oettingenstr. 2, 80538 München
Any opinions expressed in this message may be personal to the author
and may not necessarily reflect the opinions of secnetix in any way.
"All that we see or seem is just a dream within a dream" (E. A. Poe)
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Wed 11 Jul 2001 - 12:12:24 CEST

search this site