Linux的例行性工作

发布于:2025-03-28 ⋅ 阅读:(33) ⋅ 点赞:(0)

[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 * * *