![从 bash 脚本读取 cron 计划](https://linux22.com/image/665886/%E4%BB%8E%20bash%20%E8%84%9A%E6%9C%AC%E8%AF%BB%E5%8F%96%20cron%20%E8%AE%A1%E5%88%92.png)
是否有可能获得正在运行的作业的时间表?
如果我的 crontab 中有此行
* * * * * /home/test/test.sh
我可以读取* * * * *
来自 的内容test.sh
吗?并且只读取该脚本?
我希望有一些变量我可以读取并获取当前的时间表。
答案1
crontab -l
为您提供用户当前的 crontab。您可以更轻松地像这样剪切出所需的值:crontab -l | grep -v "#" | cut -d " " -f 1,2,3,4,5
答案2
您无法获取此信息,因为 crond 没有将其提供给正在运行的作业。
对于用户 cron 作业(可能还有其他作业),您可以在 crontab 中定义一个环境变量,并让您的作业读取它,例如
cron_scedule='* * * * *'
* * * * * /home/test/test.sh
cron_schedule='1-59 * * * *'
1-59 * * * * /home/test/test1-59.sh
环境变量cron_scedule
被传递给脚本环境以供脚本访问。显然,随着 cron 作业/用户等的增多,这会变得有点混乱和难以处理。
您实际上想要解决的问题是什么?