linux系统的任务计划

这部分内容太重要了,其实大部分系统管理工作都是通过定期自动执行某一个脚本来完成的,那么如何定期执行某一个脚本呢?这就要借助linuxcron功能了



关于cron任务计划功能的操作都是通过crontab这个命令来完成的其中常用的选项有:
-u :指定某个用户,不加-u选项则为当前用户;
-e :制定计划任务;
-l :列出计划任务;
-r :删除计划任务



使用crontab -e 来制定计划任务,上面的例子表示在0526日(这天必须是周四)的1001分执行’ echo "ok" >/root/cron.log’这样的任务
Cron的格式是这样的,每一行代表一个任务计划,总共分成两部分,前面部分为时间,后面部分要执行的命令后面的命令不用多讲,至于前面的时间是有讲究的,这个时间共分为5段,用空格隔开(可以是多个空格),第一段表示分钟(0-59),第二段表示小时(0-23),第三段表示日(1-31),第四段表示月(1-12),第五段表示周(0-7,0或者7都可以表示为周日)。从左至右依次是:分,时,日,月,周(一定要牢记)!
crontab -e 实际上是打开了/var/spool/cron/username (如果是root则打开的是/var/spool/cron/root)这个文件使用的是vim编辑器,所以要保存的话则在命令模式下输入:wq即可但是,你千万不要直接去编辑那个文件,因为可能会出错,所以一定要使用crontab -e来编辑查看已经设定的任务计划使用crontab -l



删除计划任务要用crontab -r



下面笔者给你出一些练习题,帮助你熟悉这个cron的应用
1. 每天凌晨120分清除/var/log/slow.log这个文件;
2. 每周日3点执行’/bin/sh /usr/local/sbin/backup.sh’
3. 每月14410分执行’/bin/sh /usr/local/sbin/backup_month.sh’
4. 每隔8小时执行’ntpdate time.windows.com’
5. 每天的1点,12点,18点执行’/bin/sh /usr/local/sbin/test.sh’
6. 每天的9点到18点执行’/bin/sh /usr/local/sbin/test2.sh’
答案:
1. 20 1 * * * echo “”>/var/log/slow.log
2. 0 30 * * 0 /bin/sh /usr/local/sbin/backup.sh
3. 10 04 14 * * /bin/sh /usr/local/sbin/backup_month.sh
4. 0 */8 * * * ntpdate time.windows.com
5. 0 1,12,18 * * /bin/sh /usr/local/sbin/test.sh
6. 0 9-18 * * * /bin/sh /usr/local/sbin/test2.sh
Cron的这部分内容并不难,你只要会了这6道练习题,你就算掌握它了这里要简单说一下,每隔8小时,就是用全部小时(0-23)去除以8,你仔细想一下结果,其实算出来应该是0,8,16三个数当遇到多个数(分钟小时周)例如第5题,则需要用逗号隔开而时间段是可以用’-‘的方式表示的等设置好了所有的计划任务后需要查看一下crond服务是否启动,如果没有启动,需要启动它



如何启动稍后会做介绍除了用户自定义的计划任务外,其实系统本身也有计划任务的



系统会安装这个配置文件中的计划去执行内定的任务

添加新评论 »