系统延时任务
利用at命令设置延时任务
命令 | 作用 |
---|---|
【root@localhost~】# at 15:02 | 设定任务的执行时间 |
at > rm -fr /mnt/* | 任务的动作 |
at > <<CTRL+D | 利用CTRL+D发起任务 |
命令 | 作用 |
---|---|
【root@localhost~】# at now+1min | 延时1分钟 |
at > rm -fr /mnt/* | 任务的动作 |
at > <<CTRL+D | 利用CTRL+D发起任务 |
命令 | 作用 |
---|---|
at -l | 查看任务列表 |
at -c 任务号 | 查看任务内容 |
at -r 任务号 | 取消任务的执行 |
显示结果为:
注意:
当任务有输出的时候,他不会出现在桌面上,他的输出会以邮件的形式发给at任务的发起者(像例如echo hello这种命令,是输出hello,执行的时候我们就能在邮件里到他,输入1,查看内容,就能看到hello,!!但是touch这种命令是没有输出的,所以也就不存在邮件)
at任务的黑白名单
在我们的系统中,默认所有的用户都可以使用at命令
- 黑名单
vim /etc/at.deny 编辑at命令使用者黑名单在里面添加用户,添加完成后该用户就不能在使用at命令
- 白名单
系统默认是不存在 /etc/at.allow这个文件,没有的话我们可以创建(touch)这个文件.
如果这个文件存在的话,系统就不会看黑名单里的用户了,注意:root用户不受黑白名单限制
利用crontab设置定时任务
当crond.service服务开启的时候,crontab命令才生效
-
man 5 crontab**可以查看这个命令的用法
-
crontab时间表示方式
* * * * *
分钟 小时 天 月 周
例如:
*/2 09-17 3,5 1 5
每两分钟 9点到17点 3号和5号 1月 周五
命令 | 含义 |
---|---|
* * * * * | 每分钟 |
*/2 * * * * | 每两分钟 |
*/2 09-17 * * * | 早上7点到晚上5点每两分钟 |
* /2 * /2* * * | 每隔两小时每两分钟 |
*/2 09-17 3,5 1 5 | 每年一月的3号和5号,以及周五,早上7点到晚上5点每两分钟 |
*/2 09-17 * * 5 | 每周周五早9点到晚上5点 |
设定定时任务
输入crontab直接回车,输入任务,然后CTRL+D发起任务
也可以输入crontab -e以文件的形式设定定时任务
命令 | 作用 |
---|---|
crontab -e -u 用户名 | 编辑定时任务(-u 后面直接跟用户名是对指定用户设定定时任务)、 |
crontab -l -u 用户名 | 查看定时任务 |
crontab -r -u 用户名 | 取消任务的执行 |
文件的方式设定定时任务
vim /etc/cron.d/file(名字可以随便写)
* * * * * username action
例如:
* * * * * root rm -fr /mnt/*
添加* * * * * root rm -fr /mnt/*
crontab的黑白名单(与at的黑白名单用法相同)
- crontab黑名单
/etc/cron.deny 系统中默认存在,在此文件中出现的用户不能执行crontab
/etc/cron.allow 系统中默认不存在,我们可以通过touch来新建,
只有在此文件中添加的用户才能执行crontab ,除了root用户不受权限控制以外,其余所有的用户都不能执行crontab命令
##这两个名单都不会影响/etc/cron.d/目录中定时任务的发起及执行
- crontab白名单
系统中临时文件的管理方式
临时文件具有生命周期,不是生成后立即被删除,而是生命周期结束以后会被清空。
我怕们可以用监控命令 watch -n 1 ‘ls -lR /mnt/’ 监控/mnt这个目录以及子目录和子文件
cd /usr/lib/tmpfiles.d/
vim westos.conf输入
d /mnt/westos 777 root root 8s
属性是目录 目录名称 权限 所有人 所有组 生命周期
用以下两个命令来测试
systemd-tmpfiles --create /usr/lib/tmpfiles.d/*
systemd-tmpfiles --clean /usr/lib/tmpfiles.d/*
新建文件
在8s之内无法删除
8s后才能删除