(一)定时任务简介shell
系统的定时任务并不难,它在咱们的服务器上是一个很是常见的任务,它指的就是让个人计算机在指定的时间,运行指定的命令或者程序。在windows里面有一任务器,它实现的就是系统定时任务,这个在我的机里面用的很少,通常就是杀毒软件什么的会用到。可是在服务器上呢,咱们不少的工做都不必定要人为手工的工做,并且有一部分工做,像备份这样的工做,天天都须要进行,并且不能在上班的时候白天执行,由于那个时候的服务器压力很是大,这个时候都应该让它在凌晨执行,固然不须要管理员天天都凌晨的时候工做,咱们可让计算机系统自动在指定的时间执行指定的命令。那么这个时候就用到了一个很是经常使用的工具,定时任务。windows
(二)定时服务的启动与关闭服务器
若是想让个人定时任务生效,咱们必需要在CentOS中启动一个叫crond的这样的一个服务。工具
crond服务是Linux的内置服务,但它不会开机自动启动。能够用如下命令启动和中止服务:rest
启动crontab
systemctl start crond.servicetest
查看状态:变量
systemctl status crond.service软件
中止配置
systemctl stop crond.service
重新启动
systemctl restart crond.service
从新加载:
systemctl reload crond.service
固然你若是熟悉CentOS6的命令,也能够输入以下命令,其实这个命令就是调用了咱们上面的命令。
service crond start
service crond stop
service crond restart
service crond reload
以上1-4行分别为启动、中止、重启服务和从新加载配置。
(三)定时任务的使用
启动以后,它的使用是很是简单的。
crontab [选项]
crontab –l 查看当前用户的crontab,输入
crontab –e 编辑crontab
crontab –r 删除crontab
输入crontab –l 能够看到no crontab for root
输入crontab –e 添加任务,能够看到如今这个文件里面彻底为空,你只要按照咱们的标准格式写入我要执行的系统变量,它就能够在指定的时间执行,那么这个标准是什么,看一下。
(四)基本格式 :
* * * * * command
前面这五个星号表明时间和日期,后面command表明执行的命令或者脚本。
这五个星号分别表明的含义。
分 时 日 月 周 命令
第1列表示分钟,范围是1~59,每分钟用*或者 */1表示
第2列表示小时,范围是0~23(0表示0点)
第3列表示日期,范围是1~31
第4列表示月份,范围是1~12
第5列标识号星期0~6(注意0表示星期天)
第6列要运行的命令。
其实这个东西不难,咱们想熟悉它,来举几个例子。
crontab –e 进入定时器的编辑。
咱们输入:
30 21 * * * command
若是写的是星号,表明任意时间,若是写的是具体的值,写的是具体的时间。
上面的例子表示每晚的21:30执行命令。
0 17 * * 1command
每周一的17点0分执行。
这里来看我若是单独写个10 表明什么,
10 * * * *command
有人说,它会每10分钟执行一次,有人说,它会在每一个小时的第10分钟执行一次,哪一个对,固然是第二种了,由于它表明的是一个小时的第几分钟。若是想要表示每隔10分钟,就须要用这样一些特殊符号,
特殊符号* 表明任什么时候间
,逗号,表明一个不连续的时间。
-减号,表明连续的时间范围,
若是用*/除以一个特定的值,才表明每隔必定的时间执行。
45 4 1,10 * * command
咱们来看一下这一个,它表明什么时间执行,说过逗号表明不连续的时间,因此说,该行表示每个月一、10日的4 : 45执行命令。
40 4 * * 1-5command
表示每周一到周五的凌晨4点40分执行命令。
*/10 4* * *
天天的凌晨4点,每隔10分钟执行一次命令。执行6次。
咱们把这些都删除了,演示一个命令。
* * * * echo 111 >>/tmp/test
保存退出。
看看系统时间, 输入date
只要这里知足一分钟,变化,它就会执行一次,咱们这个定时任务最小识别的是分钟,因此它不知道这个秒的变化,它检测的就是分钟,只要分钟变化,这个任务就执行,不必定要恰好是一分钟,由于它能识别的最小范围是分钟。咱们在date一下。
看分钟已经变化了
输入:
cat /etc/test
来查看,test文件里面已经有了111,再过一分钟,这里面还有111。这个就是定时任务。固然这个定时任务没有任何的意义,就是让你们了解一下定时任务的一些使用,计划任务就是这么简单了,可是计划任务,执行的语句若是是多条,则须要用药shell脚本,本身先写一个shell脚本,而后在计划任务中,执行这个脚本便可。至于shell脚本的写法, 这里不赘述。
这个就能查看定时任务了。