1、概念:
crond的概念和crontab是不可分割的。
1)crond
crond是Linux下用来周期执行某种任务或等待处理某些事件的一个守护进程。当安装完成操作系统后,默认会安装此服务工具,并会自动启动crond进程,crond服务会定期检查系统中是 否有要执行的任务。如果有要执行的任务便会自动执行该任务。crond是一个命令,该命令从标准输入设备读取指令,并将其存放区“crontab”文件中,以供之后读取和执行。作业规划进程是Linux下用来定期执行命令或指定程序任务的一种服务或软件。crond正是crontab的守护进程。
2)crontab文件
crontab是一个可以在crond服务上添加或编辑定时任务的命令。 crontab文件包含送交cron守护进程的一系列作业和指令。每个用户可以拥有自己的crontab文件;同时,操作系统保存一个针对整个系统的contab文件,该文件通常存放在/etc或者/ect之下的子目录中,而这个文件智能由系统管理员来修改。crontab文件的每一行均遵循特定的格式,由空格或tab分割为数个领域,每个领域可以放置单一或多个数值。crontab文件的使用权限时:root用户和crontab文件的拥有者。crontab是用来让使用者在固定时间或固定时间间隔执行程序之用,也就是类似使用者的时程表。
2、基本用法
1)
查看crond服务状态命令:
service crond status
启动crond服务:
service crond start
2)Crontab命令的格式为:crontab –l|-r|-e|-i [username]
crontab基本用法的命令行格式:
crontab [-u user] [file]
crontab [-u user] [-e|-l|-r]
crontab -l -u [-e|-l|-r]
其参数含义如下
-l 显示用户的Crontab文件的内容 crontabl –l
-i 删除用户的Crontab文件前给提示 crontabl -ri
-r 从Crontab目录中删除用户的Crontab文件 crontabl -r
-e 编辑用户的Crontab文件 crontabl -e
用户所建立的Crontab文件存于/var/spool/cron中,其文件名与用户名一致。
它的格式共分为六段,前五段为时间设定段,第六段为所要执行的命令段,
* * * * * command
分 时 日 月 周 命令其时间段的含义如下
段 含义 取值范围
第一段 代表分钟 0—59
第二段 代表小时 0—23
第三段 代表日期 1—31
第四段 代表月份 1—12
第五段 代表星期几 0代表星期日 0—6
在etc/目录下有一个crontab文件,这个就是系统调度的配置文件
3、测试实例:
1)crond使用实例:
实例1:每1分钟执行一次command
命令:
* * * * * command
实例2:每小时的第3和第15分钟执行
命令:
3,15 * * * * command
实例3:在上午8点到11点的第3和第15分钟执行
命令:
3,15 8-11 * * * command
实例4:每隔两天的上午8点到11点的第3和第15分钟执行
命令:
3,15 8-11 /2 * command
实例5:每个星期一的上午8点到11点的第3和第15分钟执行
命令:
3,15 8-11 * * 1 command
实例6:每晚的21:30重启smb
命令:
30 21 * * * /etc/init.d/smb restart
实例7:每月1、10、22日的4 : 45重启smb
命令:
45 4 1,10,22 * * /etc/init.d/smb restart
2)crontab测试实例:
示例在Linux下实现 每分钟向文件下写入当前时间:
新建crontab任务:
crontab -e //打开crontab任务编辑器;
输入* * * * * date >> /tmp/mytime.txt //每分钟在/tmp/mytime.txt文件下写入当前时间;
过一段时间输入指令 cat /tmp/mytime.txt //输出/tmp/mytime.txt 文件的内容;
结果如下图: