久违了的cron,我要记住你的用法!
cron简易教程
1.编辑/usr/spool/cron/crontabs/root文件(以root用户执行。若以其它用户执行,则编辑相应文件名),
按 minute hour day_of_month month weekday command 的格式加入行。
如 30 8 8 * * echo "Hello" 即每月8日8:30执行命令echo "Hello"。
2.ps –ef | grep cron -> kill -9 cron的进程号
3./etc/cron
(2、3即重启cron进程,无须重启系统)
一、与crontab相关的目录
1、/usr/lib/cron cron服务主目录,主要包括以下:
/usr/lib/cron/cron.allow 允许cron服务的列表。
/usr/lib/cron/cron.deny 禁止cron服务的列表。
默认情况下,仅仅有cron.deny空文件。cron.allow不存在,如果建立了cron.allow则只有root用户可用crontab命令。如相关文件存在,则存在优先原则;*.allow优先于*.deny。cron.*文件格式:用户名一行行的加入。
/usr/lib/cron/queuedefs cron 数据文件
/usr/lib/cron/FIFO 当新的作业提交由crontab完成时,一个发送消息到cron守护进程的命令管道
/usr/lib/cron/log cron执行的log文件
2、/usr/spool/cron/crontabs crontab表目录,包括所有开启cron服务的用户文件,以用户名为文件名。用户属性随意,组属性为cron。
3、/etc/default/cron CRONLOG设置为YES,该值默认为NO,系统将自动生成相应的日志文件/usr/lib/cron/log。 在/etc/default/cron中MAXLOGSIZE 限制了log文件的大小,该变量以512字节为单位设定的log的最大块数,缺省为2048块。MAXCRON变量,控制在同一时刻允许运行的最大进程数量,缺省为100。
二、crontab表的默认值
PATH=/bin:/usr/bin:
SHELL=/bin/sh
HOME
LOGNAME
同时默认%为行结束符。
三、crontab命令格式与文件格式。
1、crontab命令的格式
crontab [ -u user ] [-e | -l | -r | File]
-e 编辑当前用户的crontab文件,如不存在,则启动编辑佳话来创建之。
-l 显示用户的crontab文件内容
-r 从crontabs目录中删除用户的crontab文件
-u user 用root权限修改相应用户的crontab表。
File 该命令首先对File的内容进行合法性检查,如有效,则copy到 /var/admn/cron/crontabs目录中,并以用户名为文件名或覆盖当前用户原来的 crontab文件。
2、crontab文件格式
crontab文件记录的格式:
minute hour day_of_month month weekday command
0~59 0~23 1~31天 1~12 0~6 (0为星期日) Shell命令或脚本
(1)从...到....:数字用“-”连接,表范围,如1-5表示1,2,3,4,5。
(2)单独数字表示所属时间内,如Month中填6,表示6月内;
(3)逗号分隔,表示单列项,如1,3,5
(4)*号表所有合法值,如:*放在month表示1~12
(5)/表示每的意思,如:0/20放在minute表示0分钟开始每20分钟执行一次。
(6)星期与天的关系是或的关系,如:1-10放在day,5放在weekday下。表示1到10日或星期5执行。
四、使用crontab命令三种方式:
1、手动方式:crontab –e
2、脚本方式:
例:echo ‘0 12 * * * date >/nowdate’ >>/var/spool/cron/crontabs/root
crontab /var/spool/cron/crontabs/root
3、脚本方式(必要root权限):
例:echo ‘0 12 * * * date >/nowdate’ >>/var/spool/cron/crontabs/root
ps –ef |awk ‘/cron/{print “kill -9”,$2}` |sh
rm /usr/lib/cron/FIFO
/etc/cron