← Back to team overview

sslug-teknik team mailing list archive

Re: variabler i crontab

 

Klavs Klavsen wrote:
Det er vcron-3.0.1 (Vixie Cron). Det er da svjv standarden i de fleste
systemer (ihvertfald RedHat).
Min er Matthew Dillon's Cron (ukendt version, måske 1.01) den virker som jeg forventer af en UNIX cron (forventningen opsamlet fra ca 7 forskellige UNIX + Slackware Linux siden 1983)

Det er bare én fil i /etc/cron.d/ som indeholder:
<<
# load date from yesterday - as logfile contents is from before now :-)
DATE=`/bin/date -d yesterday +%Y%m%d`
Jeg tror ikke på at man kan sætte variable i starten af en crontab - mig bekendt er crontab'er ikke komplette scripts, men TABELLER indeholdende de one-liners, man vil have kørt kl. xx:yy.

Her er en test-crontab jeg lavede mhp dette:
#!/bin/bash <----------denne mener jeg som sagt ikke har nogen effekt

OWNER=Jon		<--- prøver at sætte lidt variable
TODAY=`date`
* * * * * echo OWNER=$OWNER TODAY=$TODAY  <-- forventer jeg ikke virker
* * * * * (OWNER=Jon TODAY=`date`; echo OWNER=$OWNER TODAY=$TODAY) <--forvent.OK

Mails efter at crontab'en er taget ibrug:

Subject: cron: echo OWNER=$OWNER TODAY=$TODAY

OWNER= TODAY=
Med andre ord, de variable sættes ikke

Subject: cron: (OWNER=Jon TODAY=`date`; echo OWNER=$OWNER TODAY=$TODAY)

OWNER=Jon TODAY=Wed Jan 8 19:46:01 CET 2003
De variable sættes i parentesen.

Konklusion:

din crontab bør ændres til:
15 1 * * * root ( DATE=`bin/date -d yesterday +%Y%m%d`; /usr/bin/webalizer -c /etc/apache/conf/webalizer-$1.conf
/var/log/apache/$1-access_log-$DATE.gz)

Eller du må lave et wrapper-script.

Ovenstående kan måske se lidt forvirrende ud, sig til hvis du ønske uddybning.

MVH
--
Jon Svejgaard
====================================================================
                               | ACE - UNIX/Linux Consultancy
                               | Hjorthoejvej 2 / DK-4291 Ruds Vedby
mail: jon@xxxxxx               | DENMARK
http://www.ace.dk              | +45 5826 1799 / +45 4052 0799
====================================================================



References