卡饭网 > linux > 正文

Linux系统计划任务crontab命令简单介绍

来源:本站整理 作者:梦在深巷 时间:2014-07-09 07:52:48

Linux计划任务cron是一个定时模式,例如我们可以在系统使用最少时对系统进行备份,但是管理员不可能在半夜来到公司工作,那么就可以使用Linux计划任务cron,现在来介绍一下具体使用方法。

目前流行的Linux系统在安装好后cron都是安装好的并且是随机启动的

启动cron服务/sbin/service crond start

停止服务/sbin/service crond stop

重启服务/sbin/service crond restart

重新加载/sbin/service crond reload

服务的启动停止介绍完了下面来说如何添加计划任务

使用crontab命令

crontab -u设定某个用户的cron服务

crontab -l列出当前用户的cron服务的详细内容

crontab -r删除当前用户的cron服务

crontab -e编辑当前用户的cron服务

例如当前登陆的用户是root

运行crontab-e就给root用户创建一个计划任务

运行crontab -e进入vi编辑计划任务内容

第1位分钟表示(0-59)第2位表示小时(0-23)

第3位表示天(1-31)第4位表示月份(1-12)

第5位置表示星期(0-6)0表示星期日

后面www.111cn.net是你要执行的任务

每一位之间使用空格分开

上面时间除了使用数字还有几个特殊符号

“*”表示所有数值如第一位使用*表示每分钟

“/”表示每如果第一位使用*/5表示每5分钟

“-”表示数值范围“,”来隔开离散的数值如第2位是1-6,8表示1点到6点,还有8点

具体实例如下

每天1点向某个文件写入一段话

0 1 * * * echo "helloworld">>/tmp/test.txt

每5分钟向执行一个程序或者命令

*/5 * * * * 执行的命令

如何知道您的计划任务是否运行了,1你可以去检查您要执行的命令是否在你指定的时间去运行了,2有的命令运行结果不好查看你可以去查cron的日志/var/log/cron

在此文件中记录了计划任务执行的情况

上述方法添加完成计划任务后会在/var/spool/cron目录中生成一个用户名字的文件,文件里面就是你的计划任务,cron服务每分钟读取一次/var/spool/cron中的文件

还有一种方法可以添加计划任务自己编辑/etc/crontab(cron服务每分钟也读取一次/etc/crontab文件)

在文件的末尾添加计划任务格式和上述方法完全一样

/etc/crontab里面还有其他的东西,下面来说下

MAILTO=root//如果出现错误,或者有数据输出,数据作为邮件发给这个帐号

01 * * * * root run-parts /etc/cron.hourly 每个小时去执行一遍/etc/cron.hourly内的脚本

0 24 * * * rootrun-parts /etc/cron.daily 每天去执行一遍/etc/cron.daily内的脚本

2 24 * * 0 root run-parts /etc/cron.weekly 每星期去执行一遍/etc/cron.weekly内的脚本

4 24 1 * * root run-parts /etc/cron.monthly 每个月去执行一遍/etc/cron.monthly内的脚本

注意上面的run-parts参数如果去掉run-parts后面就要跟要执行的某个脚本名,如果加上run-parts参数后面就要跟目录名了

也可以限制cron的使用

如果在/etc/目录中存在cron.allowcron.deny文件

只有cron.allow文件中列出的用户才能使用cron服务,同时忽略cron.deny文件

如果cron.allow文件不存在,cron.deny文件中列出的用户将被禁止使用cron服务。

这样我们就完成了Linux计划任务cron的学习。

补充一些例子:

crontab文件的的些例子:

30 21 * * * /usr/local/etc/rc.d/lighttpd restart

上面的例子表示每晚的21:30重启apache

45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart

上面的例子表示每月1、10、22日的4 : 45重启apache

10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart

上面的例子表示每周 6、周日的1 : 10重启apache

0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart

上面的例子表示在每天18 : 00至23 : 00的间每隔30分钟重启apache

0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart

上面的例http://www.111cn.net表示每星期 6的11 : 00 pm重启apache

* */1 * * * /usr/local/etc/rc.d/lighttpd restart

每的小时重启apache

* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart

晚上11点到早上7点的间的每隔的小时重启apache

0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart

每月的4号和每周的到周 3的11点重启apache

0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart

的月的号的4点重启apache

相关推荐