gpt4 book ai didi

linux - crontab 路径和用户

转载 作者:IT老高 更新时间:2023-10-28 12:36:00 25 4
gpt4 key购买 nike

我是使用 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 或任何环境变量。但是这个例子对于典型案例来说似乎已经足够了。

关于linux - crontab 路径和用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10129381/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com