Answers
大家都会想到环境变量的问题,可惜没有去读读文档,到底
crontab
有哪些默认的环境变量。
如果题主你已经在
test.py
上加入了
#!/usr/local/bin/python2.7
这一句的话,那么你的
crontab
定时任务定义只需要:
30 12 * * * /x/test.py
因为脚本第一行指定解释程序后已经是可执行性脚本(文件)了,就不再需要
python2.7
执行命令了。
如果不修改
test.py
,也可以给
python2.7
执行命令
指定路径:
30 12 * * * /usr/local/bin/python2.7 /x/test.py
但是什么时候需要指定
执行命令
的路径呢?还是读读文档吧。
crontab(5) - Linux man page
Several environment variables are set up automatically by the cron(8) daemon. SHELL is set to /bin/sh, and LOGNAME and HOME are set from the /etc/passwd line of the crontab's owner. HOME and SHELL may be overridden by settings in the crontab; LOGNAME may not.
几个环境变量已经自动设置好了的,如当前的SHELL,
SHELL=/bin/bash
,这个crontab所有者的HOME目录是从
/etc/passwd
文件中读取的。除了默认的环境变量外,其他环境变量就需要用户自己设置了,为了找到
python2.7
,就要设置
PATH=/user/local/bin
了,写法应该是这样的:(没有测试不保证正确)
30 12 * * * PATH=/usr/local/bin python2.7 /x/test.py