Linux定时计划任务管理详解

什么是定时任务

   定时任务就像闹钟一样,闹钟是你设定一个时间,到点响铃。Linux下的定时任务就是你设定一个时间,
到点执行你需要执行的命令或者脚本。在我们LINUX中,我们可以通过crontab和at这两个东西来实现这些功能

注:计划任务的作用:是做一些周期性的任务,在生产中的主要用来定期备份数据

只执行一次的定时任务命令 — at

at 计划任务的使用

语法格式: at 时间 ;服务:atd
[root@zcy1~]# systemctl start atd #开启 atd 服务
[root@zcy1 ~]# systemctl status atd #查看 atd 服务状态
[root@zcy1 ~]# systemctl is-enabled atd #查看是否开始开机启动服务,如果弹出 enabled,
说明开机启动此服务

实战----使用at创建计划任务

在这里插入图片描述

查看用at命令执行的定时任务

在这里插入图片描述

删除at定时任务

在这里插入图片描述

at 计划任务的特殊写法

[root@ zcy ~]# at 20:00 2018-10-1 #在某天
[root@ zcy ~]# at now +10min #在 10 分钟后执行
[root@ zcy ~]# at 17:00 tomorrow # 明天下午 5 点执行
[root@ zcy ~]# at 6:00 pm +3 days # 在 3 天以后的下午 6 点执行

循环定时任务——crontab

crond 命令定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作
cron 是一个 linux 下的定时执行工具,可以在无需人工干预的情况下运行作业。
linux 任务调度的工作主要分为以下两类:
系统执行的工作:系统周期性所要执行的工作,如备份数据,日志定期切割,收集系统状态信息,/tmp 定期清理

启动 crond 服务

[root@zcy ]# systemctl start crond

[root@zcy ]# systemctl enable crond

crontabl 命令参数介绍:

crontab 的参数:

crontab -u hr #指定 hr 用户的 cron 服务

crontab -l #列出当前用户下的 cron 服务的详细内容

crontab -u mk -l #列出指定用户 mk 下的 cron 服务的详细内容

crontab -r #删除 cron 服务

crontab -e #编辑 cron 服务

例如:

crontab -u root -l # root 查看自己的 cron 计划任务

crontab -u san -r # root 想删除 san 的 cron 计划任务

crontab -e 编辑时的语法

在这里插入图片描述

特殊符号的含义

符号 说明 示例
* 代表取值范围的数字 任意/每
/ 指定时间的间隔频率 */10 0-23/2
- 代表从某个数字到某个数字 8-17
, 分开几个离散的数字 6,10- 13,20

实战----使用crontab配置定时任务

每天凌晨 2 点 1 分开始备份数据

在这里插入图片描述

实战案例汇总

实战-常见的计划任务写法和案例
常见写法:

每天晚上 21:00 重启 apache
0 21 * * * /etc/init.d/httpd restart

每月 1、10、22 日的 4 : 45 重启 apache。
45 4 1,10,22 * * /etc/init.d/httpd restart

每月 1 到 10 日的 4 : 45 重启 apache。
45 4 1-10 * * /etc/init.d/httpd restart

每隔两天的上午 8 点到 11 点的第 3 和第 15 分钟执行 apach
3,15 8-11 */2 * * /etc/init.d/httpd restart

晚上 11 点到早上 7 点之间,每隔一小时重启 apach
0 23-7/1 * * * /etc/init.d/apach restart

周一到周五每天晚上 21:15 寄一封信给 root@panda:
15 21 * * 1-5 mail -s “hi” root@panda < /etc/fstab

互动:crontab 不支持每秒。 每 2 秒执行一次脚本,怎么写?
在脚本的死循环中,添加命令 sleep 2 ,执行 30 次自动退出,然后添加,计划任务:
‘* * * * * /back.sh

猜你喜欢

转载自blog.csdn.net/weixin_45412401/article/details/110389557