crontab命令被用来提交和管理用户需要周期性执行的任务,与windows下的计划任务类似。

    (1)用法:

    用法: crontab  [-u user]  file

     crontab  [-u user]  [ -e | -l | -r ]

    (2)功能:

    功能:  当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。

在固定的间隔时间执行指定的系统指令或 shell script脚本。时间间隔的单位可以是分钟、小时、日、月、周及以上的任意组合。这个命令非常设合周期性的日志分析或数据备份等工作。

    (3)选项参数:

1) -l         列出当前计时器的设置,查看定时运行的程序

2) -e             编辑该用户的计时器设置,设置计时器

3) -r        删除该用户的计时器设置

4) -u<用户名称>  指定要设定计时器的用户名称

  (4)实例:(此命令用的不常,在此简要介绍)

1)每1分钟执行一次command

* * * * * command

2)每五分钟执行一次命令

 */ * * * * command

3)在每天的17:00执行这个命令

  * * *  command

4)在8:02,11:02,14:02,17:02,20:02 执行,在8点到20点的时间内,每三个小时执行一下命令

 -/ * * * command

以后会讨论crondtab的几个用法:

     *创建一个新的crontab文件:

  1.进入 /var/spool/cron目录下(目录为空表明当前系统内没有任何Linux计划任务需要执行)

[root@localhost /]# cd /var/spool/cron
[root@localhost cron]# ll
总用量

     *列出crontab文件:

2.用crontab自带的命令crontab -l 发现也是没有任何东西()

[root@localhost cron]# crontab -l
no crontab for root

     *编辑crontab文件;

3.如果目录已经存在指定的文件(文件名为当前用户名),则crontab -e 命令编辑它,否则创建新的文件。cron服务每分钟不仅要读一次/var/spool/cron内的所有文件,还需要读一次 /etc/crontab,因此我们配置这个文件也能运用cron服务做一些事情。用crontab配置是针对某个用户的,而编辑/etc/crontab是针对系统的任务。

*/2 * * * * ls -l /home/sunjimeng/Documents > root.txt
* * * * * echo "I am MenAngel" > root.txt

*删除crontab文件;

恢复丢失的crontab文件;

    (5)其他:

1.什么是Windows的计划任务?

在Windows中,系统有一项重要的“计划任务”功能,通过设置“计划任务”,你可以将每天或某一天的某个时间需要做的事拟成计划,到约定的时间,不管你在电脑上进行什么工作,系统都会提醒你或者启动你设定好的任务程序。

2.crontab的简介:

crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。该词来源于希腊语 chronos(χρνο),原意是时间。常,crontab储存的指令被守护进程激活, crond常常在后台运行,每一分钟检查是否有预定的作业需要执行。这类作业一般称为cron jobs。

3.crontab文件:

  crontab文件包含送交cron守护进程的一系列作业和指令。每个用户可以拥有自己的crontab文件;同时,操作系统保存一个针对整个系统的crontab文件,该文件通常存放于/etc或者/etc之下的子目录中,而这个文件只能由系统管理员来修改。crontab文件的每一行均遵守特定的格式,由空格或tab分隔为数个领域,每个领域可以放置单一或多个数值。

4.Linux下的任务调度

Linux下的任务调度分为两类:系统任务调度和用户任务调度。

系统任务调度:  系统周期性所要执行的工作,比如写缓存数据到硬盘、日志清理等。在/etc目录下有一个crontab文件,这个就是系统任务调度的配置文件:

[root@localhost /]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root # For details see man crontabs # Example of job definition:
# .---------------- minute ( - )
# | .------------- hour ( - )
# | | .---------- day of month ( - )
# | | | .------- month ( - ) OR jan,feb,mar,apr ...
# | | | | .---- day of week ( - ) (Sunday= or ) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed

前三行是用来配置crond任务运行的环境变量。第一行SHELL变量指定了系统要使用哪个shell,这里是bash;第二行PATH变量指定了系统执行命令的路径;第三行MAILTO变量指定了crond的任务执行信息将通过电子邮件发送给root用户,如果MAILTO变量的值为空,则表示不发送任务执行信息给用户。

 *: 表示任何时刻
,: 表示分割
-:表示一个段,如第二端里: -,就表示1到5点
/n : 表示每个n的单位执行一次,如第二段里,*/, 就表示每隔1个小时执行一次命令。也可以写成1-/.

用户任务调度:  用户定期要执行的工作,比如用户数据备份、定时邮件提醒等。用户可以使用 crontab 工具来定制自己的计划任务。所有用户定义的crontab文件都被保存在/var/spool/cron目录中。其文件名与用户名一致。

[root@localhost /]# cd /var/spool/cron
[root@localhost cron]# ll
总用量
/etc/cron.deny       该文件中所列用户不允许使用crontab命令 
/etc/cron.allow      该文件中所列用户允许使用crontab命令
/var/spool/cron/    所有用户crontab文件存放的目录,以用户名命名

5.crond服务

  1)安装crontab:

 yum install crontabs

服务操作说明:

/sbin/service crond start //启动服务

/sbin/service crond stop //关闭服务

/sbin/service crond restart //重启服务

/sbin/service crond reload //重新载入配置

  查看crontab服务状态:  service crond status

[root@localhost sunjimeng]# service crond status
Redirecting to /bin/systemctl status crond.service
crond.service - Command Scheduler
Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled)
Active: active (running) since 五 -- :: PDT; weeks days ago
Main PID: (crond)
CGroup: /system.slice/crond.service
└─ /usr/sbin/crond -n 5月 :: localhost.localdomain systemd[]: Started Command Scheduler.
5月 :: localhost.localdomain crond[]: (CRON) INFO (RANDOM_DELAY...
5月 :: localhost.localdomain crond[]: (CRON) INFO (running with...
Hint: Some lines were ellipsized, use -l to show in full.

  手动启动crontab服务:  service crond start

[root@localhost sunjimeng]# service crond start
Redirecting to /bin/systemctl start crond.service

    查看crontab服务是否已设置为开机启动,执行命令:  ntsysv

[root@localhost sunjimeng]# ntsysv

输入上述命令后,centOS弹出下面的页面:

  *加入开机自动启动:  chkconfig –level 35 crond on(以后再介绍)

*要把cron设为在开机的时候自动启动,在 /etc/rc.d/rc.local 脚本中加入 /sbin/service crond start即可。

每天一个Linux命令(44)crontab命令的更多相关文章

  1. 每天一个linux命令(56)--crontab命令

    上一节学习了 at  命令是针对仅运行一次的任务,循环运行的例行性计划任务,Linux 系统则是由 cron(crond)这个系统服务来控制的.Linux 系统上面原本就有非常多的计划性工作,因此这个 ...

  2. Linux 设置定时任务crontab命令

    1.  crontab命令概念 crontab命令用于设置周期性被执行的指令.该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行. cron 系统调度进程. 可以使 ...

  3. linux定时任务:crontab命令

    crontab命令被用来提交和管理用户的需要周期性执行的任务,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查 ...

  4. Linux中使用crontab命令定时执行shell脚本或其他Linux命令

    使用crontab你可以在指定的时间执行一个shell脚本或者一系列Linux命令.例如系统管理员安排一个备份任务使其每天都运行 如何往 cron 中添加一个作业? # crontab –e0 5 * ...

  5. Linux中的crontab命令用法

    Crontab 在linux中,crontab的用来设置定期执行指定的命令,我们可以用它来指定一些需要重复的事情,Linux系统的用户只需将想要定期要执行的命令序列加到crontab文件中,操作系统即 ...

  6. Linux 定时任务调度(crontab命令)

    crond 是Linux下用周期性的执行某种任务或者等待处理某些事件的一个守护进程,crond 进程会每分钟定期检查是否有要执行的任务,如果有要执行的任务则自动执行该任务 Linux 下的任务调度 系 ...

  7. linux常用命令:crontab 命令

    前一天学习了 at 命令是针对仅运行一次的任务,循环运行的例行性计划任务,linux系统则是由 cron (crond) 这个系统服务来控制的.Linux 系统上面原本就有非常多的计划性工作,因此这个 ...

  8. linux命令:crontab命令(转)

    一.crond简介 crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动cro ...

  9. 转 linux任务调度之crontab命令

    crontab命令常见于Unix和Linux的操作系统之中,用于设置周期性被执行的指令.该命令从标准输入设备读取指令,并将其存放于"crontab"文件中,以供之后读取和执行. 在 ...

  10. Linux新手学堂 Crontab命令的语法

    crontab 命令的用途就是:提交.编辑.列出或除去 cron 作业. 语法 crontab [ -e [UserName] | -l [UserName] | -r [UserName] | -v ...

随机推荐

  1. BootstrapValidator 解决多属性被同时校验问题《转》

    问题描述:在使用bootstrapValidator插件校验表单属性,当表单属性过多需要每行并列多个属性 ,会出现校验第一个属性,发现整行被校验的效果 ,这不是我们工作想要的效果.如图: 问题分析:因 ...

  2. nginx源代码分析--nginx模块解析

    nginx的模块很之多.能够觉得全部代码都是以模块的形式组织.这包含核心模块和功能模块,针对不同的应用场合.并不是全部的功能模块都要被用到,附录A给出的是默认configure(即简单的httpser ...

  3. python升级导致yum命令无法使用的解决

    1.报错信息如下: [root@develop bin]# yum [root@develop local]# yum -y install prce There was a problem impo ...

  4. Servlet 调试

    测试/调试 Servlet 始终是开发使用过程中的难点.Servlet 往往涉及大量的客户端/服务器交互,可能会出现错误但又难以重现. 这里有一些提示和建议,可以帮助您调试. System.out.p ...

  5. Python Socket 网络编程 (服务器端编程)

    服务器端主要做以下工作: 打开 socket 绑定到特定的地址以及端口上 监听连接 建立连接 接收/发送数据 上面已经介绍了如何创建 socket 了,下面一步是绑定. 绑定 socket 函数 bi ...

  6. 2017 css新特性

    2017年要学习的三个CSS新特性 这是翻译的一篇文章,原文是:3 New CSS Features to Learn in 2017,翻译的不是很好,如有疑问欢迎指出. 新的一年,我们有一系列新的东 ...

  7. 项模板选择器属性(ItemTemplateSelector属性)和样式选择器(ItemContainerStyleSelector)

    3.4.5 共享尺寸组 样式选择器: 或者========================================

  8. opencv中彩色图转换成灰度图rgb2gray

    imread函数读入图像: 只需要将imread的第二个参数置为0即可. Mat imread(const string& filename, intflags=1 ); 第一个参数是载入图片 ...

  9. Yii GridView::widget

    GridView::widget文档 http://demos.krajee.com/grid GridView::widget([ 'dataProvider' => $dataProvide ...

  10. 庖丁解牛:USB 驱动开发技术彻底解密

    我们知道如果开发工程师不懂RS232 肯定会让人笑话可以想象面向未来USB 接口无处不在因此掌握USB 的原理固件编程及其驱动开发技术势必成为当务之急USB 即插即用的优点和灵活性运用于各种电子产品现 ...