文章目录
一、循环执行的例行性工作调度二、实际运行单次工作调度三、anacron开机后立刻检测停机期间应该运行但是并没有运行的crontab任务,并将该任务执行一遍,然后anacron就会自动停止一、循环执行的例行性工作调度
大部分系统管理工作都是通过定期自动执行某一个脚本来完成的,那么如何定期执行某一个脚本呢?这就要借助linux的cron功能了。Cron的格式是这样的,每一行代表一个任务计划,总共分成两部分,前面部分为时间,后面部分要执行的命令。前面的时间是有讲究的,这个时间共分为5段,用空格隔开(可以是多个空格),第一段表示分钟(0-59),第二段表示小时(0-23),第三段表示日(1-31),第四段表示月(1-12),第五段表示周(0-7,0或者7都可以表示为周日)。从左至右依次是:分,时,日,月,周(一定要牢记)!
例如:每天凌晨1点20分清除/var/log/slow.log这个文件这样的任务。
20 1 * * * echo “”>/var/log/slow.log
crontab -e 打开了/var/spool/cron/username (如果是root则打开的是/var/spool/cron/root)这个文件。使用的是vim编辑器,插入“20 1 * * * echo “” > /var/log/slow.log”,在命令模式下输入:wq保存即可。但是,你千万不要直接用vi命令去编辑那个文件,因为可能会出错,所以一定要使用crontab -e来编辑。
二、实际运行单次工作调度
例:3分钟后在本机屏幕显示"hello world"。
例:3分钟后在远程连接主机屏幕显示"qqqq"。
例:CPU工作负载小于0.8时,才进行你所执行的工作任务。若负载太高,则暂缓执行。
三、anacron开机后立刻检测停机期间应该运行但是并没有运行的crontab任务,并将该任务执行一遍,然后anacron就会自动停止
用 cron.daily 工作来说明一下 /etc/anacrontab 的执行过程。1、由/etc/anacrontab分析cron.daily这项工作的天数为一天;
2、读取 /var/spool/anacron/cron.daily 文件中 anacron 上一次执行的时间戳;
3、和当前时间比较,如果两个时间的差值超过 1 天,就执行 cron.daily 这项工作;
4、执行工作时强制延迟时间为 5 分钟;
5、延迟时间过后,开始执行“run-parts /etc/cron.daily”目录中所有的可执行文件;
6、执行完毕后,anacron程序结束。