使⽤shell命令⾏添加crontab定时任务与使⽤sed来注释恢复crontab中的⼀个任务
⼀、使⽤shell命令⾏ 添加crontab 定时任务
crontab 是运维过程中常⽤的定时任务执⾏⼯具
⼀般情况下在有新的定时任务要执⾏时,使⽤crontab -e ,将打开⼀个vi编辑界⾯,配置好后保存退出,但是在⾃动化运维的过程中往往需要使⽤shell脚本或命令⾃动添加定时任务
⽅法⼀:
编辑 /var/spool/cron/⽤户名 ⽂件,如:
XML/HTML代码
- echo "* * * * * hostname >> /tmp/tmp.txt" >> /var/spool/cron/root
缺点:需要root权限
⽅法⼆:
编辑 /etc/crontab ⽂件,
XML/HTML代码
- echo "* * * * * root hostname >> /tmp/tmp.txt" >> /etc/crontab
⽅法三:
利⽤crontab -l 加 crontab file 两个命令实现⾃动添加
XML/HTML代码
- crontab -l > conf && echo "* * * * * hostname >> /tmp/tmp.txt" >> conf && crontab conf && rm -f conf
优点:不限⽤户,任何有crontab权限的⽤户都能执⾏
缺点:稍微复杂
⼆、使⽤sed来注释/恢复crontab中的⼀个任务
1. 快速注释包含特定字符串 Log_exception_restart 的⾏
XML/HTML代码
- sed -e "/Log_exception_restart/ s/^/#/" -i /var/spool/cron/root
XML/HTML代码
- sed -e "/Log_exception_restart/ s/^#//" -i /var/spool/cron/root
注意不同系统crontab的目录不太一样,需要注意,根据系统进行修改。
Linux计划任务Crontab 在线生成器
例子:
表示:“At 08:00 on Friday.”(每周五早上8点)