linux中设定系统延时任务及定时任务
linux中设定系统延时任务及定时任务
前言:每个人或多或少一都有一些约会或者工作,有的工作是例行性工作,如每年一次加薪,每月一次工作报告。那么linux的例行性工作是如何进行调度的?所谓的调度就是将这些工作安排执行的流程。linux的工作调度种类有:at,cron。
(一)linux中的定时任务
1.at,它是个可以处理执行一次就结束调度的命令,不过要执行at时,必须要有atd这个服务,我们先来谈谈这个单一工作调度的运作。
at 参数详解:
-V : 印出版本编号
-q : 使用指定的Queue来储存,at 的资料是存放在所谓的 queue 中,使用者可以同时使用多个 queue,而 queue 的编号为 a, b, c... z 以及 A, B, ... Z 共 52 个
-m : 即使程序/指令执行完成后没有输出结果, 也要寄封信给使用者
-f file : 读入预先写好的命令档。使用者不一定要使用交谈模式来输入,可以先将所有的指定先写入档案后再一次读入 网络应用
-l : 列出所有的指定 (使用者也可以直接使用 atq 而不用 at -l)
-d : 删除指定 (使用者也可以直接使用 atrm 而不用 at -d)
-v : 列出所有已经完成但尚未删除的指定
1 为了实验效果,我们先实施监控:
2 设定定时任务,并查看:
3 定时一分钟后执行任务:
4 查看任务
5 撤销任务
6 执行与先写好的命令文档:
7 执行,并且查看:
结果;
2 at命令的使用控制:默认系统中全部用户都有执行at命令的权力,那么如何设置at命令的黑白名单:
#at 用户黑名单
默认情况下,系统中是存在用户黑名单的,名单路径:
/etc/at.deny 此名单默认为空,在白名单不存在时生效
vim /etc/at.deny
student ##student用户不能执行at命令
#at 用户白名单
默认系统中不存在at的白名单的
但是当白名单出现时,系统中除名单中出现的用户以及root用户,其他用户均不能执行at命令
/etc/at.allow
vim /etc/at.allow
westos ##添加白名单,westos可以执行
3 linux的第二种工作调度种类为cron(循环执行)
1 crontab这个命令所设置的工作将将会一直循环下去。可循环的时间为分钟,小时,每周,每年。
2 linux上原本就有许多例行性工作,所以cron(crond)这个系统服务默认启动的。
3 参数详解:
cron服务提供crontab命令来设定cron服务的,以下是这个命令的一些参数与说明:
crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数
crontab -l //列出某个用户cron服务的详细内容
crontab -r //删除某个用户的cron服务
crontab -e //编辑某个用户的cron服务
4 cron由crond.service服务提供且写入程序的时间和事件是永久保存的。
5 cron设定方式:
crontab -e 进入编辑模式:
实验:1 crontab编辑命令:
linux上原本就有许多例行性工作,所以cron(crond)这个系统服务默认启动的。linux上原本就有许多例行性工作,所以cron(crond)这个系统服务默认启动的。linux上原本就有许多例行性工作,所以cron(crond)这个系统服务默认启动的。
2 查看:
3 查看crontab对应的用户:
4 cron的黑白名单;
默认情况下,系统中只存在黑名单,当白名单建立时,黑名单失效
##黑名单
/etc/cron.deny ##在此名单出现的用户不能执行crontab
##白名单
/etc/cron.allow ##当此名单出现时,除root用户和名单上的用户可以使用,其他均不可以
5 文件方式定义crontab:
vim /var/spool/cron/用户名称 ##以某和用户身份执行cron ,文件名称必须和用户名一致
分 时 天 月 周 动作
vim /etc/cron.d/文件 ##设定多个用户执行cron
分 时 天 月 周 用户 动作
实验2,设定多个用户执行cron:
1 编辑 /etc/cron.d/westos:
2 在/tmp/中查看效果:
3 我们试着来编辑命令档westos,再增加点内容:
[[email protected] cron.d]# cat >> westos <<EOF
4 试着编辑icron自动化脚本,将上述操作写进脚本:
5 运行脚本:
6 查看结果,脚本编写成功:
临时文件管理:
systemd-tmpfiles: 创建、删除和管理临时文件的一个服务 。
vim /usr/lib/tmpfiles.d/***.conf ##编写管理临时文件的配置文
件,***为用户自定义
/usr/lib/tmpfiles.d/*.conf rpm软件安装的时候,自动更新的配置文
件,不能更改
d /run/user 0755 root root - #当创建文件或目录时,如果/run/user不存在,就会以此属性创建目录。此目录不会被自动清除
D /home/student 0755 student user 1h - #当创建文件或目录时,如
果/home/student不存在,就会以此属性创建目录。
如果执行systemd-tmpfiles --clean ,此目录下1h内没有被access、
change和modified 的文件或目录会被删除。
实验:我们编辑配置文件:
我们用systemd命令:
根据xxx.conf的内容创建文件或目录:
执行上述命令,会发现10s后会清空/mnt/