LINUX计划任务cron

obkx1401 8年前

来自: http://111288.blog.51cto.com/101288/130524


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表示星期日
后面是你要执行的任务
每一位之间使用空格分开
上面时间除了使用数字还有几个特殊符号

Java代码  

“*”表示所有数值 如第一位使用* 表示每分钟    “/”表示每 如果第一位 使用 */5 表示每5分钟    “-”表示数值范围“ ,”来隔开离散的数值 如第2位 是1-6,8 表示1点到6点,还有8点

 

具体实例如下
每天1点向某个文件写入一段话

Java代码  

0   1   *  *  * echo "hello world" >> /tmp/test.txt



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

Java代码  

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


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

上述方法添加完成计划任务后会在/var/spool/cron目录中生成一个用户名字的文件,文件里面就是你的计划任务,cron服务每分钟读取一次/var/spool/cron中的文件
还有一种方法可以添加计划任务自己编辑/etc/crontab (cron服务每分钟也读取一次/etc/crontab文件)

在文件的末尾添加计划任务 格式和上述方法完全一样
/etc/crontab里面还有其他的东西,下面来说下

Java代码  

MAILTO=root //如果出现错误,或者有数据输出,数据作为邮件发给这个帐号  01 * * * * root run-parts /etc/cron.hourly 每个小时去执行一遍/etc/cron.hourly内的脚本  02 4 * * * root run-parts /etc/cron.daily 每天去执行一遍/etc/cron.daily内的脚本  22 4 * * 0 root run-parts /etc/cron.weekly 每星期去执行一遍/etc/cron.weekly内的脚本  42 4 1 * * root run-parts /etc/cron.monthly 每个月去执行一遍/etc/cron.monthly内的脚本



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

也可以限制cron的使用
如果在/etc/目录中存在cron.allow   cron.deny文件
只有cron.allow文件中列出的用户才能使用cron服务,同时忽略cron.deny文件
如果cron.allow文件不存在,cron.deny文件中列出的用户将被禁止使用cron服务