linux - 我在哪里可以设置 crontab 将使用的环境变量?

我每小时运行一个 crontab。运行它的用户在 .bash_profile 中有环境变量,当用户从终端运行作业时,这些环境变量会起作用,但是,显然这些不会在运行时被 crontab 拾取。

我尝试在 .profile.bashrc 中设置它们,但它们似乎仍然没有被接收。有谁知道我可以在哪里放置 crontab 可以获取的环境变量?

最佳答案

从命令行运行crontab -e时,您可以在crontab本身中定义环境变量。

LANG=nb_NO.UTF-8
LC_ALL=nb_NO.UTF-8
# m h  dom mon dow   command

* * * * * sleep 5s && echo "yo"

此功能仅适用于 cron 的某些实现。 Ubuntu 和 Debian 目前使用 vixie-cron这允许在 crontab 文件中声明这些(也是 GNU mcron)。

Archlinux和 RedHat使用 cronie 不允许声明环境变量,并且会在 cron.log 中抛出语法错误。解决方法可以按条目完成:

# m h  dom mon dow   command
* * * * * export LC_ALL=nb_NO.UTF-8; sleep 5s && echo "yo"

https://stackoverflow.com/questions/2229825/

相关文章:

python - 为什么很多例子在 Matplotlib/pyplot/python 中使用 `fi

python - NumPy 数组初始化(填充相同的值)

python - 删除具有重复索引的 pandas 行

python - 如何知道/更改 Python shell 中的当前目录?

python - 保存对象(数据持久性)

linux - 命令以毫秒为单位获取时间

linux - 如何在 vi 文本编辑器中获得对文件的 sudo 访问权限?

linux - 如何将密码传递给scp?

linux - 突出显示类似于 grep 的文本,但不过滤掉文本

linux - 如何使用 bash 脚本替换文件名中的空格