一、简介
crond是Linux下用来周期性的执行某种任务 或等待某些 时间处理的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。
Linux下的系统调度分为两类:系统任务调度和用户任务调度
系统任务调度:系统周期性要执行的工作, 比如比如写缓存数据到硬盘、日志清理等。在/etc目录下有一个crontab文件,这个就是系统任务调度的配置文件。
用户任务调度:用户定期要执行的工作,比如用户数据备份、定时邮件提醒等。用户可以使用 crontab 工具来定制自己的计划任务。所有用户定义的crontab 文件都被保存在 /var/spool/cron目录中。其文件名与用户名一致。
使用者权限文件:
文件:
/etc/cron.deny
说明:
该文件中所列用户不允许使用crontab命令
文件:
/etc/cron.allow
说明:
该文件中所列用户允许使用crontab命令
文件:
/var/spool/cron/
说明:
所有用户crontab文件存放的目录,以用户名命名
crontab文件的含义:
用户所建立的crontab文件中,每一行都代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段,格式如下:
在上面的字段中可以使用下面的特殊字符:
二、crontab服务星号(*):代表所有的可能值
逗号(,):可以用逗号隔开的值执指定一个不列表的范围
中杠(-):可以用整数之间的中杠代表整数范围
正斜线(/):可以用 / 执行时间的间隔频率
安装crontab: yum install crontabs
三、crontab命令详解服务操作说明:
/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置
查看crontab服务状态:
service crond status
查看crontab服务状态:
service crond status
查看crontab服务是否已设置为开机启动,执行命令:
ntsysv
加入开机自动启动:
chkconfig –level 35 crond on
1. 命令格式:
crontab [-u user] file
crontab [-u user] [-e | -l | -r ]
2.命令功能:
通过crontab 命令,我们可以在固定的间隔时间执行指定的系统指令或 shell script脚本。
3. 命令参数:
-u user : 设定某个用户的crontab服务
file : file是命令文件的名字
-e :编辑某个用户的内容
r:从/var/spool/cron目录中删除某个用户的crontab文件,如果不指定用户,默认删除当前用户的crontab文件
-i:在删除用户的crontab文件时给确认提示
4. 常用方法:
1.)创建一个新的crontab
在考虑向考虑向cron进程提交一个crontab文件之前,首先要做的一件事情就是设置环境变量EDITOR。cron进程根据它来确定使用哪个编辑器编辑crontab文件。9 9 %的UNIX和LINUX用户都使用vi,如果你也是这样,那么你就编辑$ HOME目录下的. profile文件,在其中加入这样一行:
EDITOR=vi; export EDITOR 然后保存并退出。
不妨创建一个名为<user> cron的文件,其中<user>是用户名,例如, davecron。在该文件中加入如下的内容:
# (put your own initials here)echo the date to the console every
# 15minutes between 6pm and 6am
0,15,30,45 18-06 * * * /bin/echo 'date' > /dev/console
保存并退出。确信前面5个域用空格分隔。
在上面的例子中,系统将每隔1 5分钟向控制台输出一次当前时间。如果系统崩溃或挂起,从最后所显示的时间就可以一眼看出系统是什么时间停止工作的。在有些系统中,用tty1来表示控制台,可以根据实际情况对上面的例子进行相应的修改。为了提交你刚刚创建的crontab文件,可以把这个新创建的文件作为cron命令的参数:
$ crontab davecron
现在该文件已经提交给cron进程,它将每隔1 5分钟运行一次。同时,新创建文件的一个副本已经被放在/var/spool/cron目录中,文件名就是用户名(即dave)。
2.)列出crontab文件
crontab -l //
0,15,30,45,18-06 * * * /bin/echo `date` > dev/tty1
你将会看到和上面类似的内容。可以使用这种方法在$ H O M E目录中对crontab文件做一备份:
$ crontab -l > $HOME/mycron //备份
这样,一旦不小心误删了crontab文件,可以用上一节所讲述的方法迅速恢复。
3.)编辑crontab文件
如果希望添加、删除或编辑crontab文件中的条目,而E D I TO R环境变量又设置为v i,那么就可以用v i来 编辑crontab文件,相应的命令为:
$ crontab -e
可以像使用v i编辑其他任何文件那样修改crontab文件并退出。
4.)删除crontab文件
$ crontab -r
四、使用实例
实例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
转载: http://www.cnblogs.com/peida/archive/2013/01/08/2850483.html