循环重复的执行计划任务、有计划性的执行任务,像这种任务,在linux系统中就有cron命令来完成。

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

/etc/crontab文件就是系统任务调度的配置文件:

[root@centos ~]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name command to be executed

[root@centos ~]#

前四行是配置crond任务运行的环境变量,第一行SHELL变量指定了使用/bin/bash,第二行PATH变量指定了系统执行命令的路径。第三行MAILTO变量指定了cron的任务执行信息将发送给root用户,第四行HOME变量指定了在执行命令或者脚本时使用的主目录,

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

文件:

/etc/cron.deny   #该文件中所列用户不允许使用crontab命令

文件:

/etc/cron.allow   #该文件中所列用户允许使用crontab命令

文件:

/var/spool/cron/  #所有用户crontab文件存放的目录,以用户名命名

crontab的使用格式:minute  hour  day  month  week  command

如果minute使用*表示,则代表每分钟,可取0-59之间的整数。一次类推。

command表示要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。

在以上各个字段中,还可以使用以下特殊字符:

星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。

逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”

中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”

正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。

crond服务是集成在系统上的,哪怕是安装最小化系统,这项服务也会被安装上。

crontab 命令格式: crontab [ –u user ]  file

crontab [  -u  user ]   [ –e ] [ –l ] [ –r ] [ –i ]

crontab –u jack 表示使用jack这个用户来运行命令

-e参数的意思是“编辑” -l参数的含义是“查看计划任务” -r参数的含义是“删除计划任务”这个参数会删除/var/spool/cron目录下的所有几乎任务。-i参数的意思是在删除用户的crontab文件是给确认提示。给出交互提示。

实例: 0 4 1 jan * /etc/int.d/smb restart   #1月1号早上4点整重启smb服务。

01 * * * *  root run-parts /etc/cron.hourly  #每小时以root用户的身份执行/etc/cron.hourly目录下的所有脚本。 注:如果去掉run-parts参数的话,目录后面就必须跟上某个具体的脚本,而不能是某个文件夹。

注意:

1. 如果我们创建了一个crontab文件,但是任务无法执行,而手动执行这个任务是没有问题的。这种情况下一般是由于在crontab文件中没有配置环境变量引起的。

2. 注意清理系统用户的邮件日志,每条任务调度执行完毕,系统都会将任务输出信息通过电子邮件传递给用户,改信息一般保存在/var/spool/mail目录下。这样日积月累,这个目录下的日志信息会非常大,可能会影响系统的正常运行。因此将每条任务执行后进行重定向非常重要。

例:0  */3  *  *  *  /usr/local/apache2/apachectl restart  >/dev/null  2>&1

>/dev/null的意思是将输出信息清除,2>&1的意思是将标准错误重定向到标准输出,而标准输出已经重定向到了/dev/null中,所以无论是标准输出还是标准错误都会重定向到/dev/null中。

另外,新建的cron job不会立马执行,至少要等两分钟才能执行,如果重启cron才会马上执行。

当crontab突然失效时,可以重启cron服务;或者查看日志:tail  -f /var/log/cron

linux系统任务调度命令crontab的更多相关文章

  1. Linux任务调度命令(轻松管理Linux)

    Linux任务调度其实就是让系统在某个时间执行某些命令或者程序,这样可以让管理员更加轻松地管理自己的Linux,当我刚了解到这个方法时,我的内心充满了无尽的欣喜,感觉Linux实在是太强大了. 下面我 ...

  2. linux下的crontab服务

    linux下的crontab服务:1.crontab 是用来让使用者在固定时间或固定间隔执行程序之用在linux平台上如果需要实现任务调度功能可以编写cron脚本来实现.以某一频率执行任务linux缺 ...

  3. Linux提示no crontab for root的解决办法

    Linux提示no crontab for root的解决办法 安装crontab:yum install crontabs 说明:/sbin/service crond start //启动服务/s ...

  4. Linux计划任务Crontab实例详解教程

    说明:Crontab是Linux系统中在固定时间执行某一个程序的工具,类似于Windows系统中的任务计划程序 下面通过详细实例来说明在Linux系统中如何使用Crontab 操作系统:CentOS ...

  5. linux下使用crontab定时备份MYSQL数据库的方法:

    摘要 linux下使用crontab定时备份MYSQL数据库的方法: 只需按照下面3步做,一切都在你的掌控之下: 第一步:在服务器上配置备份目录代码: ------------------------ ...

  6. Linux中的crontab命令用法

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

  7. MySQL定时备份之使用Linux下的crontab定时备份实例

    这篇文章主要介绍了使用Linux下的crontab进行MySQL定时备份的例子,需要的朋友可以参考下   复制代码代码如下: ##################################### ...

  8. Linux定时任务命令crontab

    作为一个php码农,linux接触总是很少,但又是必须会的一项技能,今天学到的linux命令是crontab命令. 注:以下总结基于Ubuntu 12.04 去/etc目录下看看 先去Ubuntu的/ ...

  9. LINUX下使用crontab进行RMAN备份实验

    之前写了脚本,手动执行可以,使用crontab总是无法运行成功,今天下午花了两个小时实验,完成如下: 注意事项:脚本完成首先手动执行,确定可以正常执行. 在crontab中使用,要注意以下几点: 1. ...

随机推荐

  1. HDU1133 Buy the Ticket —— 卡特兰数

    题目链接:https://vjudge.net/problem/HDU-1133 Buy the Ticket Time Limit: 2000/1000 MS (Java/Others)    Me ...

  2. 在eclipse里头用checkstyle检查项目出现 File contains tab characters (this is the first instance)原因

    就是文件里面有制表符,通常是使用tab键缩进造成的. 代码中缩进不推荐使用制表符,建议将制表符替换为4个空格.在菜单中可设置.

  3. 【mysql】mysql innodb 配置详解

    MySQL innodb 配置详解 innodb_buffer_pool_size:这是InnoDB最重要的设置,对InnoDB性能有决定性的影响.默认的设置只有8M,所以默认的数据库设置下面Inno ...

  4. 闪动的Label控件

    带闪动效果带控件,目前只有Label,以后会逐步增加,如果有好看带效果也欢迎您带加入. 如果可能,请在github中star,您的支持是我继续完善的动力,非常感谢. 测试环境:Xcode 5.0,iO ...

  5. JavaWeb学习总结(三)response与request

    一.response response是Servlet.service方法的一个参数,类型为javax.servlet.http.HttpServletResponse.在客户端发出每个请求时,服务器 ...

  6. 【UVA12779占位】Largest Circle

    几何题,希望有时间回来解决掉.

  7. Linux下启动mongodb

    完成安装mongodb(略) 创建数据目录: # mkdir /data/mongo 创建配置文件 # vi /data/mongo/mongodb.cnf dbpath=/data/mongo/ l ...

  8. gsoap开发webservice

    gSOAP编译工具提供了一个SOAP/XML 关于C/C++ 语言的实现,从而让C/C++语言开发web服务或客户端程序的工作变得轻松了很多.绝大多数的C++web服务工具包提供一组API函数类库来处 ...

  9. bzoj 5072 [Lydsy1710月赛]小A的树——树形dp

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=5072 发现对于每个子树,黑点个数确定时,连通块的大小取值范围一定是一段区间:所以考虑只最小化 ...

  10. 计时器 vb

    十分钟 我们寒假就是这么长!! vb 执行cmd   :              shell "cmd /c DOS命令" vb 取系统日期: Print Date; " ...