在运行命令之前,让’cron’运行一个设置环境的shell脚本。
总是。
# @(#)$Id: crontab,v 4.2 2007/09/17 02:41:00 jleffler Exp $# Crontab file for Home Directory for Jonathan Leffler (JL)#-----------------------------------------------------------------------------#Min Hour Day Month Weekday Command#-----------------------------------------------------------------------------0 * * * * /usr/bin/ksh /work1/jleffler/bin/Cron/hourly1 1 * * * /usr/bin/ksh /work1/jleffler/bin/Cron/daily23 1 * * 1-5 /usr/bin/ksh /work1/jleffler/bin/Cron/weekday2 3 * * 0 /usr/bin/ksh /work1/jleffler/bin/Cron/weekly21 3 1 * * /usr/bin/ksh /work1/jleffler/bin/Cron/monthly
〜/ bin / Cron中的脚本都是指向单个脚本“ runcron”的链接,如下所示:
: "$Id: runcron.sh,v 2.1 2001/02/27 00:53:22 jleffler Exp $"## Commands to be performed by Cron (no debugging options)# Set environment -- not done by cron (usually switches HOME). $HOME/.cronfilebase=`basename $0`cmd=${REAL_HOME:-/real/home}/bin/$baseif [ ! -x $cmd ]then cmd=${HOME}/bin/$basefiexec $cmd ${@:+"$@"}(使用较旧的编码标准编写-如今,我一开始会使用shebang’#!’。)
“〜/ .cronfile”是我的个人资料的一个变体,供cron使用-
严格不交互式,也不会因为吵闹而回声。您可以安排执行.profile等。(REAL_HOME的东西是我所处环境的伪像-您可以假装它与$ HOME相同。)
因此,此代码读取适当的环境,然后从我的主目录执行命令的非Cron版本。因此,例如,我的“工作日”命令如下所示:
: "@(#)$Id: weekday.sh,v 1.10 2007/09/17 02:42:03 jleffler Exp $"## Commands to be done each weekday# Update ICSCOPEn.updics
“每日”命令比较简单:
: "@(#)$Id: daily.sh,v 1.5 1997/06/02 22:04:21 johnl Exp $"## Commands to be done daily# Nothing -- most things are done on weekdays onlyexit 0



