linux – crontab PATH和USER

我是新调度任务与cron和crontab。我试图安排一个任务的执行,好像我已经登录,打开一个终端,并自己执行。

但是,我安排了一个任务,以帮助我观察什么$ USER和$ PATH计划任务正在执行,这是我发现:

$ crontab -l
41 11 * * * echo "USER: $USER" > ~/Desktop/cron_env.log; echo "PATH: $PATH" >> ~/Desktop/cron_env.log
$ cat ~/Desktop/cron_env.log
USER:
PATH: /usr/bin:/bin

看起来好像没有设置$ USER,$ PATH是非常基本的和/或默认的东西。相反,这是我看到当我打开一个终端(登录),并回应这相同的信息:

USER: aschirma
PATH: /usr/lib/jvm/java-6-sun/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/pkg/icetools/bin:/pkg/hwtools/bin:/pkg/netscape/bin:/pkg/gnu/bin

我需要做什么,使我的crontab任务运行我想要的方式?

根据“man 5 crontab”,您可以在crontab中设置环境变量,通过在cron行之前写入它们。

还有一个crontab的例子,所以你只需要复制/粘贴它:

$ man 5 crontab | grep -C5 PATH | tail 
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow usercommand
17 * * * *  root  cd / && run-parts --report /etc/cron.hourly
25 6 * * *  root  test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7  root  test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )

所以你可以调整你的PATH或任何环境变量任何你想要的。但这个例子似乎足够的典型情况。

http://stackoverflow.com/questions/10129381/crontab-path-and-user

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:linux – crontab PATH和USER