sslug-teknik team mailing list archive
-
sslug-teknik team
-
Mailing list archive
-
Message #58981
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