Crontab 是 Unix 和类 Unix 操作系统中的一个功能强大的实用程序,用于安排命令在固定的时间、日期或间隔定期运行。当与环境变量结合使用时,这个强大的工具可以为自动化和管理任务提供更加健壮的解决方案。但什么是环境变量,如何在 Crontab 中使用它们呢?让我们深入探讨一下这个问题。
了解环境变量
Linux 中的环境变量是动态命名的值,这些变量包含的数据提供给一个或多个应用程序使用,可以影响您的处理流程。
环境变量在脚本和编程中是必不可少的,因为它们可以帮助您避免硬编码。例如,您可以将文件路径定义为环境变量,而不是硬编码文件路径,从而允许在不更改程序的情况下进行更改。
了解 crontab
术语 crontab 是 cron table 的缩写,其中 cron 是类 unix 操作系统中作业调度器的名称。Crontab 文件是简单的文本文件,其中包含在指定时间运行的命令列表。
cronjob 的语法如下:
* * * * * command to be executed

设置 Crontab 作业环境变量
虽然您可以在 shell 中设置环境变量,但是这些变量不能被 Crontab 作业访问,因为每个作业都在一个单独的 shell 中运行,而不能在 shell 环境中运行。那么,如何将环境变量传递给 Crontab 作业呢 ?
您可以直接在 Crontab 文件中设置环境变量。假设您想将一个名为“MY VAR”的环境变量设置为“Hello, Cron”,你可以这样做:
(1) 使用 crontab -e 命令打开 crontab 文件。
(2) 在文件的顶部,按如下方式定义环境变量。
MY_VAR="Hello, Cron"
* * * * * echo $MY_VAR >> /tmp/my_log.log
PATH 的特殊情况
运行 cron 作业时的一个常见问题是,cron 作业中的 PATH 变量可能与 shell 中的 PATH 不相同,这意味着在 shell 中工作正常的命令可能会在 cron 中会失败。
为了解决这个问题,您可以在 Crontab 文件的顶部设置 PATH 变量,以包含 cron 作业所需的可执行文件的所有目录。
PATH=/usr/local/bin:/usr/bin:/bin
您可能需要根据可执行文件的具体位置调整这一行。
