Linux命令——crontab命令

来源:互联网 发布:dtxmania软件下载 编辑:程序博客网 时间:2024/06/05 05:08

一、简介

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

服务操作说明:

/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


三、crontab命令详解

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





0 0
原创粉丝点击