linux系统中的延时任务及定时任务(at和crontab)
1.系统延时任务
- at延时任务
[[email protected] mnt]# at 14:32 定时任务执行时间
warning: commands will be executed using /bin/sh
at> touch westos{1..5} 任务动作
at> <EOT> ctrl+d发起任务
[[email protected] mnt]# at now+1min 延时1分钟执行
warning: commands will be executed using /bin/sh
at> rm -rf /mnt/*
at> <EOT>
at -l 查看任务列表
at -c 任务号 查看任务内容
at -r 任务号 取消任务执行
注意:
当任务输出时,输出会以邮件的形式发送给at任务的发起者
mail -u root 查看超级用户邮件
1 查看第一封邮件
q 退出
> /var/spool/mail/root 清空邮件
-
at任务的黑白名单
/etc/at.deny 系统默认存在,在此文件中出现的用户不能执行at
/etc/at.allow 系统默认不存在,当文件出现,普通用户不能执行at,只能在名单的用户可以,并且/etc/at.deny失效
vim /etc/at.deny
vim /etc/at.allow
2.系统定时任务
- crontab时间表示方式
crontab -e -u root
* * * * * 每分钟
*/2 * * * * 每两分钟
*/2 09-17 * * * 早7-晚8每两分钟
*/2 */2 * * * 每隔两小时每两分钟
*/2 09-17 3,5 1 5 1月份的3号到5号的每周五的早9-晚5每两分钟
*/2 09-17 * * 5 每周周五早9-晚5每两分钟
- 系统控制crontab的服务
crond.service 当程序开启时时定时任务生效
- crontab
crontab -e -u 用户名 -e 编辑
crontab -l -u 用户名 查看任务列表
crontab -r -u 用户名 取消任务执行
- 系统级别的cron(文件方式设定定时任务)
vim /etc/cron.d/westos
* * * * * username action
* * * * * root rm -rf /mnt/*
等待1分钟执行任务
- crontab的黑白名单
/etc/cron.deny 系统默认存在,在此文件中出现的用户不能执行crontab
/etc/cron.allow 系统默认不存在,当文件出现,普通用户不能执行crontab,只能在名单的用户可以,并且/etc/cron.deny失效,这两个名单都不会影响/etc/cron.d/目录中定时任务的发起及执行
3.系统性临时文件的处理方式
cd /usr/lib/tmpfiles.d/
vim westos.conf
d /mnt/westos 777 root root 8s
systemd-tmpfiles --create /usr/lib/tmpfiles.d/westos.conf
systemd-tepfiles --clean /usr/lib/tmpfiles.d/westos.conf
练习:
1.用一条非交互命令设定lee用户在每天15点清理/mnt目录
2.设定系统定时任务,每周5早上8点清理系统临时文件