循环重复的执行计划任务、有计划性的执行任务,像这种任务,在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. 物体position:absolute后设置left:50%发生的有趣小事

    今天在重构ui控件中3秒hint提示框样式,发现了一个有趣的小事,特发个文章记录一下,方便自己日后看一下 一 准备知识 ①一个已设置宽高的块状元素设置position:absolute后会保持他原来宽 ...

  2. BZOJ 1619 [Usaco2008 Nov]Guarding the Farm 保卫牧场:dfs【灌水】

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1619 题意: 给你一个n*m的地形图,位置(x,y)的海拔为h[x][y]. 一个山顶的定 ...

  3. php之上传图片及传数据到mysql

    index.html <form action="php.php" method="post" enctype="multipart/form- ...

  4. eslintrc.js

    此插件主要就是规范前端程序员编写JS的规范,让代码看上去很优雅,也便于后期人员的重构和维护. 因为是用vue的cli搭建项目工程,使用了eslintrc.js ,但是在写JS时发现,首字母缩进一直报错 ...

  5. css font-family(字体样式)

    之前因为用的很少,所以没注意,最近做APP混合开发, 给字体一个样式    font-family:" 微软雅黑": 发现在有的手机上有效,但是在有的手机上是无效的, 解决方法:  ...

  6. bzoj 4289 PA2012 Tax——构图

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4289 可以把一个点上的边按权值排序,然后边权小的向第一个比它大的连差值的边,边权大的向第一个 ...

  7. FFmpeg常用命令 (一)

    常用参数说明: 主要参数:-i 设定输入流-f 设定输出格式-ss 开始时间视频参数:-b 设定视频流量,默认为200Kbit/s-r 设定帧速率,默认为25-s 设定画面的宽与高-aspect 设定 ...

  8. Java字节码指令收集大全

    Java字节码指令大全 常量入栈指令 指令码 操作码(助记符) 操作数 描述(栈指操作数栈) 0x01 aconst_null null值入栈. 0x02 iconst_m1 -1(int)值入栈. ...

  9. 51nod 1021【区间DP】

    思路: dp[ i ] [ j ]代表取[ i ,j ]区间石子的最小值,然后dp[i][j]=min(dp[i][j],dp[i][k]+dp[k+1][j]+sum[j]-sum[i-1]); # ...

  10. 3d工具收集

    Poser 是Metacreations公司推出的一款三维动物.人体造型和三维人体动画制作的极品软件.用过Poser 2与Poser 3的朋友一定能感受到Poser的人体设计和动画制作是那么的轻松自如 ...