一、什么是计划任务
计划任务是指通过预定义的计划的方式自动执行某些任务的功能。
计划任务主要有以下的作用:
1.自动执行定期任务。比如每天凌晨3点自动备份数据库,每周一自动进行系统更新和升级等。
2.实现任务定时执行。比如在指定时间或者时间段内执行某些程序或脚本,比如每天18点执行推送程序。
3.处理倒闭任务。指在系统较idle时执行一些任务,减轻系统负担,如 log 文件的清理、数据归档等。
4.触发单次任务。通过 at 或 cron 指定具体时刻只执行一次的任务。
5.应对机会性工作。比如收到新数据后生成报表,或者其他需要及时但不一定定期处理的任务。
6.自动重启程序。如 WEB 服务崩溃后自动重启。
7.任务调度。比如将大任务按时间段拆分成小任务,避免同时执行影响系统。
8.简化操作。无需手动执行定期任务,通过计划任务自动进行。
9.记录任务日志。计划任务生成的日志有助于任务监控和问题排查。
10.提高工作效率。实现系统或程序定期自维护无需人工介入。
二、编写计划任务
1.at方法
只能定义24小时范围内
定义一个17:16分的任务,将日期写入/root/t.txt中
[root@localhost ~]# at 17:16
at> date > /root/t.txt
查询计划任务
[root@localhost ~]# at -l
2 Sun Oct 13 17:16:00 2024 a root
删除计划任务
[root@localhost ~]# atrm 2
2.crond服务
启动服务:systemctl start crond
crond服务的时间定义规则
* * * * * | ||||
分 | 时 | 日 | 月 | 周 |
00-59 | 00-23 | 01-31 | 01-12 | 00-07 |
例:
* * * * * 每分钟执行一次
*/5 * * * * 每五分钟执行一次
10 10 * * * 每天十点十分执行一次
1010,12,14 * * * 每天的十点十分,十二点十分,十四点十分执行
date的格式变化
[root@localhost ~]# date +%Y #四位年份
2024
[root@localhost ~]# date +%y #两位年份
24
[root@localhost ~]# date +%m #两位月份
10
[root@localhost ~]# date +%b #汉字月份
10月
[root@localhost ~]# date +%d #两位日期
12
[root@localhost ~]# date +%H #24小时制小时
19
[root@localhost ~]# date +%l #12小时制小时
7
[root@localhost ~]# date +%M #两位分钟
10
[root@localhost ~]# date +%S #两位秒数
04
[root@localhost ~]# date +%j #一年的第几天
286
[root@localhost ~]# date +%w #周几
6
[root@localhost ~]# date +%A #全称星期几
星期六
[root@localhost ~]# date +%p #AM/PM表示
下午
[root@localhost ~]# date +%T #24小时制时间
19:10:27
[root@localhost ~]# date +%D #月/日/年
10/12/24
[root@localhost ~]# date +%x #本地日期格式
2024年10月12日
[root@localhost ~]# date +%X #本地时间格式
19时10分34秒
[root@localhost ~]# date
2024年 10月 12日 星期六 19:10:37 CST
创建计划任务
先创建个脚本
[root@localhost ~]# vim a.sh
#!/bin/bash
echo "点点关注,点点赞,加个收藏"
[root@localhost ~]# bash a.sh
点点关注,点点赞,加个收藏
想让这个脚本每分钟执行一次
[root@localhost ~]# crontab -e
* * * * * /root/a.sh