day18定时任务
什么是定时任务
类似日常生活之中的闹钟;主要用于定时执行某些命令,达到定时处理数据的作用。
作用:
1、类似生活中使用的闹钟
2、可以自动完成操作命令
3、定时备份系统数据信息
定时任务的软件的种类
1、linux操作系统自带的软件:crontab
2、第三方的定时任务软件:atd、anacron
3、WEB定时软件:PPGo_Job
4、基于etcd的定时任务系统
crontab命令
crontab命令:被用来提交和管理用户的需要周期性执行的任务,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。
/etc/cron.deny 该文件中所列用户不允许使用crontab命令
/etc/cron.allow 该文件中所列用户允许使用crontab命令
/var/spool/cron/ 所有用户crontab文件存放的目录,以用户名命名 # 所有的定时任务文件存放地方
# 格式:
minute hour day month week command # 顺序:分 时 日 月 周
minute : 表示分钟,可以是从0到59之间的任何整数。
hour :表示小时,可以是从0到23之间的任何整数
day :表示日期,可以是从1到31之间的任何整数
month :表示月份,可以是从1到12之间的任何整数
week :表示星期几,可以是从0到7之间的任何整数(这里的0和7代表星期日)
command : 要执行的命令,可以是系统命令,也可以是自己编写的脚本文件
# 特殊字符:
* :代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。
, :可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”
- :可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”
/ :可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。
定时任务加在哪里
1、定时任务配置文件
定时任务配置文件
1)定时目录(需要执行的命令必须放在文件当中,同时也必须加上可执行权限)
/etc/cron.hourly : 每小时执行一次
/etc/cron.daily : 每天执行一次
/etc/cron.weekly : 每周执行一次
/etc/cron.monthly : 每月执行一次
2)、定时任务的配置文件
/etc/crontab # 系统定时任务的配置文件之一
3)、定时任务编写文件
crontab -e :编辑定时任务(用户可以省略,默认是当前用户)
crontab -l :查看定时任务(只查看当前用户的定时任务)
例如:在设置时间段里创建一个文件
[root@localhost ~]# crontab -e
55 15 * * * touch /opt/1.txt
2、用户定时任务
用户定时任务
1)、定时任务的格式
# 分 时 日 月 周 运行命令
minute hour day month week command # 顺序:分 时 日 月 周
user-name 指的是执行这个定时任务的用户
案例1:要求在每天凌晨3点45分执行一次
45 3 * * *
案例2:要求在每天凌晨3点45分以root用户执行/root/1.sh一次
45 3 * * * root/root/1.sh
2)、定时任务保存的地方 # /var/spool/cron
所有的用户定时任务都保存在 /var/spool/cron 目录中,当用户增加定时任务时,会在该目录中添加以自己名称命名的文件,并将定时任务保存在其中。
3、可能出现的提示
可能出现的提示
no crontab for oldboy02 : 没有任何定时任务
crontab: installing new crontab : 新增了一个定时任务
Do you want to retry the same edit? : 编辑的定时任务可能会出现错误
4、定时任务的日志
定时任务的日志
当定时任务出现错误的时候,需要排查错误,就需要到定时任务日志文件中去查询错误的原因
/var/log/cron : 可以查看到执行那些定时任务
/var/log/message: 记录系统操作的日志,(例如:用户登录)
定时任务的各种格式
案例1:要求每分钟执行一次
* * * * *
案例2:要求每天的凌晨3点执行一次
0 3 * * *
案例3:要求每天上午7,9,12点各执行一次
0 7,9,12 * * *
案例4:要求每个季度执行一次
0 1,4,7,10 * * *
案例5:要求在每天上午的7点每隔2分钟执行一次(0分钟的时候不执行)
*/2 7 * * *
案例6:要求每个月的1号的星期一执行一次
0 0 1 * 1
案例7:要求每天的8 - 11点每隔5分钟执行一次
*/5 8,9,10,11 * * *
*/5 8-11 * * *
案例8:要求每天的21点到凌晨3点,每个5分钟执行一次
*/5 21-3 * * *
*/5 21-23,0-3 * * *
案例9:要求每天上午7点开始,每隔两分钟执行一次
*/2 7 * * *
案例10:要求每天上午7点开始到23点结束,每隔两小时的两分钟执行一次
*/2 7-23/2 * * *
案例11:要求工作日(1,5)的7点和下午两点执行一次
0 7,14 * * 1-5
0 7,14 * * 1,2,3,4,5
实例12:每小时的第3和第15分钟执行
3,15 * * * *
实例13:在上午8点到11点的第3和第15分钟执行
3,15 8-11 * * *
3,15 8,9,10,11 * * *
实例14:每隔两天的上午8点到11点的第3和第15分钟执行
3,15 8-11 */2 * *
实例15:每个星期一的上午8点到11点的第3和第15分钟执行
3,15 8-11 * * 1