Cron 环境变量

Cron 环境变量

我正在运行一个简单的 shell 脚本,它在登录 shell 中运行良好cron,但在登录 shell 中却无法运行。出于某种原因,/usr/local/bin在运行时不在用户路径上,cron而在 shell 中运行时却在用户路径上。

确定的环境在哪里cron

答案1

一般从为 建立的非登录环境中/bin/sh,这是运行该命令的默认使用环境。

在大多数版本中,您可以在 crontab 中设置其他环境变量,例如:

PATH=/usr/local/bin:/usr/bin:/bin
@reboot whatever

查看crontab(5)详情;man 5 crontab

答案2

检查你的脚本正在使用哪个 shell。

crontab 的 shell 和变量在 /etc/crontab 中指定

x@x:~$ cat /etc/crontab 

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

sh 使用的配置文件位于用户主目录中。

x@x:~$ ls ~/.profile 
/home/x/.profile

您可以在此文件末尾添加 PATH 变量(确保您添加了正确用户的配置文件)

PATH="$PATH:/usr/local/bin"

或者您可以在自己的脚本中添加相同的行。

相关内容