sun 发表于 2017-11-13 21:41:17

Linux计划任务

    在Linux下,经常需要定期的执行一些脚本从而来实现一些功能。    在Linux下我们用crontab来实现定期的执行脚本这个功能,下面就介绍一下crontab的使用。以及我遇到的一些问题
一. crontab的使用说明   1. crond 是linux用来定期执行程序的命令。当安装完成操作系统之后,默认便会启动此任务调度命令。crond命令每分钟会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。而linux任务调度的工作主要分为以下两类
         a. 系统执行的工作,比如垃圾清理,备份         b. 用户自定义的工作,比如每5分钟执行一次脚本
   2. crontab是UNIX系统下定期执行任务的触发器。用户把要定期执行的任务记录在这个文件下面,然后crond定期的去检查这个定期执行列表,有要执行的工作时便自动执行。         通过man crontab可以查看到下面的信息         a. /etc/crond.allow 表示的是允许使用crontab的用户列表         b. /etc/crond.deny 表示的是不允许使用crontab的用户列表            3. crontab常用的几个命令格式         crontab -l   //显示用户的crontab文件的内容         crontab -e//编辑用户的crontab文件的内容         crontab -r   //删除用户的crontab文件
    4. crontab文件的基本格式如下所示      *      *       *       *      *       command       分    时   天   月   周         命令       每列表示意义       a. 第一个*表示的是分钟1~59分钟,默认*表示的是每分钟都执行,x-y表示的是x~y这段每分钟都执行,*/n表示每n分钟执行一次,x,y,z表示的是x,y,z分钟都执行。       b. 第二个*表示的是小时1~23小时,默认*表示的是每小时都执行,x-y表示的是x~y这段每小时都执行,*/n表示每n小时执行一次,x,y,z表示的是x,y,z小时都执行。       c. 第三个*表示的是天1~31,默认*表示的是每天都执行,x-y表示的是x~y这段每天都执行,*/n表示每n天执行一次,x,y,z表示的是x,y,z天都执行。       d. 第四个*表示的是月1~12,默认*表示的是每个月都执行,x-y表示的是x~y这个段每月都执行,*/n表示每n分钟执行一次,x,y,z表示的是x,y,z天都执行。       e. 第五个*表示的是周0~6(0表示周天),默认周一~周天都执行,x-y表示周x~周y每天都执行。
   5. crontab文件的一些例子         a. 30 21 * * * /usr/local/etc/rc.d/lighttpd restart             //表示每天21:30重启apache         b. 45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart    //表示每月1,10,22号4:45重启apache         c. 0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart    //表示每天18 : 00至23 : 00之间每隔30分钟重启apache         d. * */1 * * * /usr/local/etc/rc.d/lighttpd restart            //表示每一小时重启apache         e. */5 * * * * /usr/local/etc/rc.d/lighttpd restart            //表示每5分钟重启apache
6.crontab服务的启动关闭
sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置

DEMO
// 查看系统设划任务 未查出有
# crontab -l
no crontab for root坐等
我先停止了mysqld
然后坐等21:58分
结果,没有反应,重启失败!
页: [1]
查看完整版本: Linux计划任务