我需要在主机列表上编辑 cron 作业名称。考虑到主机数量,我们可以有一个脚本来编辑 cron 作业名称吗?
示例:/var/spool/cron
有以下 cron 作业:
00 * * * * /home/app2/limit_proc_status_2048.sh >> /export/home/app2/limit_proc_status.txt
我需要找到将十进制 2048 编辑为 4096 的脚本。
答案1
要修改 crontab 条目(这些是计划和命令,它们没有名称),您必须
- 将当前 crontab 转储到文件中
- 修改文件
- 从文件重新加载 crontab
第一步和最后一步可以完成
crontab -l >crontab.old
和
crontab crontab.new
请注意,从这样的文件加载 crontab取代当前用户的所有现有 crontab 条目。
这两个操作之间发生的修改可能是一个简单的sed
替换:
sed 's/limit_proc_status_2048\.sh/limit_proc_status_4096.sh/' crontab.old >crontab.new
替换模式需要足够具体,以便仅修改文件中的相应行。
最好把两者crontab.old
都留在身边crontab.new
,以防出现问题。
为了更容易修改作业,通常最好安排一个运行作业的脚本。在您的情况下,如果您的 crontab 调用了一个脚本,该脚本又调用并安排了重定向到日志文件等,那么您根本limit_proc_status_2048.sh
不需要浪费时间。crontab
唯一需要更改的是该脚本。
对于在运行之前可能需要额外逻辑和设置的作业,或者仅包含复杂命令的作业(我通常编写一个简短的脚本,并安排它来代替,对于比单个简单命令更长的任何内容)尤其如此。 。