Linux的例行性工作
[root@server ~]#watch -n 1 ls /tmp #实时监控tmp,每1s刷新
[root@server ~]#dnf provides /bin/at #查询安装at服务后的包名
一、单一执行的例行性任务--at
[root@server ~]# dnf install at -y #安装at服务
[root@server ~]# systemctl start atd #开启atd服务
[root@server ~]# systemctl enable --now atd # 设置立即开机启动
[root@server ~]# systemctl status atd # 查看atd服务状态
at命令(at -参数 日期时间)
-m:当任务完成后,即使没有标准输出,也会给用户发送邮件
-l:查看所有用户的at任务
-d:删除任务
-v:使用时间格式列出任务
-c:列出任务之后的命令内容
-f:读取文件
#点击ctrl+d 结束交互性界面
[root@server ~]# echo "echo 'hello again' >> at.txt" | at now +1 minute #通过管道符执行命令
at.allow(白名单):写在该文件中用户才可执行at命令,可以无视黑名单
at.deny(黑名单):写在该文件中的用户不能使用at命令
若at.allow和at.deny都不存在则只有root用户可以使用at命令
二、循环执行的例行性任务--crontab
crontab -参数
-l:查看任务
-e:编辑任务(编写任务时写绝对路径)
-i:删除任务
-r:删除任务
-u:执行任务,指定用户
[root@server ~]#crontab -u root -e #指定root用户执行命令
cron.d # 系统定时任务
cron.daily # 每天的任务
cront.deny # 定时任务黑名单
cron.hourly # 每小时执行的任务
cron.monthly # 每月的定时任务
crontab # 定义任务管理文件
cron.weekly # 每周的定时任务
练习
11. 在4月份的周一到周三的上午11点执行脚本
0 11 * 4 1-3 /usr/bash xxxx
12. 每天早上7点到上午11点且每2小时执行一次
0 7-11/2 * * *
13. 每天6点执行脚本
0 6 * * *
14. 每周六凌晨4点执行
0 4 * * 6
15. 每周六凌晨4点05执行
5 4 * * 6
16. 每天8:40执行
40 8 * * *
17. 在每天10:31且每隔2小时执行一次
31 10/2 * * *
18. 每周一到周五2:00执行
0 2 * * 1-5
19. 每周一到周五8:00和9:00执行
0 8,9 * * 1-5
20. 每天10:00,16:00执行
0 10,16 * * *