首页 > 技术文章 > linux基础之定时任务设置

90s-blog 2021-12-17 22:20 原文

1、定时任务

定时任务类型与生活中的闹钟,在linux系统中可以自动完成操作命令,或者定时备份系统信息数据。

2、定时任务的种类

1.系统默认自带定时服务:crond(crontab)
2.一次性定时任务:atd
3.非7*24运行的服务器:anacron

3、系统定时文件

# 在文件中写命令然后添加可执行权限
系统定时任务周期:每小时:/etc/cron.hourly
系统定时任务周期:每一天:/etc/cron.daily
系统定时任务周期:每一周:/etc/cron.weekly
系统定时任务周期:每个月:/etc/cron.monthly

4、系统定时任务的配置文件之一

[root@mysql03 ~]# vim /etc/crontab  # 编辑定时任务配置文件

  *  *  *  *  *  : crontab表达式,即时间周期的含义。
  # 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
  # *表示任意的时间(分、时、日、月、周)都执行
  # -表示一个时间范围执行,比如第一颗*的位置写5-7表示5-7点都执行
  # ,表示分隔时间段,比如最后一颗*为位置写6,0,4表示周六、周日、周四都执行
  # */数字:表示每隔数字单位时间执行,如第一颗*位置写*/10表示每隔10分钟执行

image

5、编写定时任务

crontab 参数
  参数:
	-e : 编辑定时任务
    -l : 查看定时任务
    -r : 删除定时任务
    -u :指定其他用户

image

6、练习

# 假设需要每天的凌晨21:47执行/root/1.sh
  [root@mysql03 ~]# crontab -e   # 进去编写定时任务
  
    45 21 * * * /root/1.sh
    
  [root@mysql03 ~]# chmod +x 1.sh # 给1.sh加执行权限

image

7、定时任务是相对隔离

每一个用户的定时任务是相对隔离的,在/var/spool/cron目录下,以当前用户的用户名命名的文件就是它的定时任务文件。
  [root@mysql03 ~]# ll /var/spool/cron  # 查看该目录下的定时任务
  [root@mysql03 ~]# cat /var/spool/cron/用户名  # 查看该用户名设置的定时任务

image

8、定时任务服务运行记录日志文件

查看定时任务服务运行记录日志文件常用命令:

  [root@mysql03 ~]# head /var/log/cron  # 从头部开始查看文件,默认查看10行
	-n数字 : 指定查看多少行
	
  [root@mysql03 ~]# tail /var/log/cron  # 从尾部开始查看文件,默认查看10行
    -n数字 : 指定查看多少行
    -f :  实时监控文件变化
    
  [root@mysql03 ~]# less /var/log/cron  # 类似于vim的方式查看文件,使用光标上下翻动,空格进行翻页,q退出
  [root@mysql03 ~]# more /var/log/cron  # 类似于vim的方式查看文件,使用回车上下翻动,空格进行翻页,q退出
  [root@mysql03 ~]# cat /var/log/cron  # 查看文件

image

image

image

9、定时任务格式规范

定时任务格式规范,每种写法都试用于每颗星星:* * * * *

  1.每隔2分钟执行: */2 * * * *
  2.每天的2点,4点,6点,8点,10点这4个小时的01分钟执行: 01 2,4,6,10 * * *
  3.每天的2到6点执行: 00 2-6 * * *
  4.每天的2到6点中每隔2小时执行: 00 2-6/2 * * *
  5.每年的2月14号或者每年2月的周日2点执行: 00 02 14 2 7
  6.每个月的14号2点或者每周日的2点执行: 00 02 14 * 7
  7.每个月的1,5,15号2点每隔十分钟执行: */10 02 1,5,15 * *
  8.每周二的两点执行: 00 02 * * 02
		
# 注意:设置定时任务一定要加注释;用脚本执行定时任务,脚本要使用绝对路径,需要添加执行权限。

推荐阅读