Debian系统下如何在Cron中定义并使用变量简化任务配置
在Debian Cron中用变量简化重复路径
当然可以!在Debian的crontab里定义变量来复用重复的路径是完全可行的,这不仅能让你的任务配置更整洁,后续要修改路径的时候也不用一条条改,省心太多。
具体操作很简单:
- 先在crontab文件的最顶部定义变量,格式就是
变量名=路径值,注意不要在等号前后加空格,比如:
你也可以用自己习惯的变量名(比如你提到的WORKER_DIR=/var/www/bbs/public_html/worker/VARIABLE),用更语义化的名字会更利于后期维护。 - 然后在所有任务行里直接用
$变量名替代重复路径,就像你设想的那样:
把所有重复的任务都改成这种格式即可。0 0 * * * php -q $WORKER_DIR/get.php 'domain=someDomain' < /dev/null > $WORKER_DIR/log/someDomain.log &
这里有几个小细节要留意:
- 变量定义必须放在所有任务行的前面,否则cron执行任务时会识别不到这个变量。
- 路径末尾的斜杠
/记得加上,不然拼接get.php或者log/时会生成错误路径(比如变量是/path/worker,$VAR/get.php就会变成/path/workerget.php,直接导致执行失败)。 - Cron的运行环境比普通shell精简很多,单纯用路径变量不会有问题,但如果需要用到其他特殊环境变量(比如自定义PATH),可能需要在crontab里额外定义。
- 不确定配置是否正确的话,可以先在shell里测试:先导出变量
export WORKER_DIR=/var/www/bbs/public_html/worker/,然后运行任务中的php命令,确认能正常执行后再写入crontab。
内容的提问来源于stack exchange,提问作者mdBender
相关产品推荐
相关产品推荐

