请选择 进入手机版 | 继续访问电脑版

ylsunyuan技术论坛中心

 找回密码
 注册(请使用中文注册)
搜索
热搜: 活动 交友 discuz
查看: 161|回复: 0

Linux计划任务

[复制链接]

123

主题

126

帖子

614

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
614
发表于 2017-11-13 21:41:17 | 显示全部楼层 |阅读模式

    在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
  1. // 查看系统设划任务 未查出有
  2. [root@iZ28na4xi3rZ ~]# crontab -l
  3. no crontab for root
复制代码
坐等
我先停止了mysqld
然后坐等21:58分
结果,没有反应,重启失败!
回复

使用道具 举报

本版积分规则

QQ|Archiver|手机版|小黑屋|ylsunyuan技术论坛 ( 桂ICP备14005218号-1

GMT+8, 2018-7-16 04:51 , Processed in 0.069520 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表