您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在哪里可以设置crontab将使用的环境变量?

在哪里可以设置crontab将使用的环境变量?

在运行命令之前,让’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/hourly
1        1       *       *       *       /usr/bin/ksh /work1/jleffler/bin/Cron/daily
23       1       *       *       1-5     /usr/bin/ksh /work1/jleffler/bin/Cron/weekday
2        3       *       *       0       /usr/bin/ksh /work1/jleffler/bin/Cron/weekly
21       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/.cronfile

base=`basename $0`
cmd=${REAL_HOME:-/real/home}/bin/$base

if [ ! -x $cmd ]
then cmd=${HOME}/bin/$base
fi

exec $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 ICSCOPE
n.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 only

exit 0
其他 2022/1/1 18:23:39 有313人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶