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