1.系统延时任务
例如:
watch -n 1 ls /mnt 监控/mnt的内容,时间间隔为1s
touch /mnt/file{1..10} 在/mnt中建立file1-file10
at 09:24 设定任务执行时间
rm -fr /mnt/* 任务动作
然后用ctrl+d 发起任务
09:23:30设置在09:24:00删除/mnt中的所有文件。
09:24:01时,/mnt中的所有文件已经删除。
at now+1min 建立新任务延时1分钟
at -l 查看任务列表
at -r 任务号 取消任务执行
at -c 任务号 查看任务内容
注意:
当任务有输出时,输出会以邮件的形式发送给at任务的发出者
at now+1min
echo hello
mail -u root 查看超级用户的邮件
1 查看第一封邮件
q 退出
> /var/spool/mial/root 清空超级用户的邮件
2.at任务的黑白名单
vim /etc/at.deny 系统中默认存在,再次文件中出现的用户不能执行at(黑名单)
vim /etc/at.allow 系统中默认不存在,当文件出现,普通用户不能执行at,只有再名单出现的用户可以(白名单)
假设我们在白名单内加入student,student此时可以用at命令。
新加用户westos,不可以用at命令。
注意:黑名单与白名单同时存在时,白名单优先。此时/etc/at.deny失效。
3.系统的定时任务
systemctl status crond.service 查看crond.service这个服务的状态
crontab -e -u root(编辑,指定用户,不指定用户即默认当前)
####
* * * * * rm -fr /mnt/* 即为每个整分钟删除/mnt中的文件一次(里面不写root)
####
1)crontab时间表示方式
man 5 crontab 可以查看crontab的使用说明
* * * * * 分别代表:分时日月周
* * * * * 代表每分钟执行一次
*/2 * * * * 每两分钟执行一次
*/2 09-17 * * * 早9到晚5每两分钟执行一次
*/2 */2 * * * 每个两小时每两分钟执行一次
*/2 09-17 1 3,5 5 3月和5月每周周五三月一和五月一9点到5点 每两分钟执行一次
*/2 09-17 * * 5 每周周五9点到5点每隔两分钟执行一次
2)系统控制crontab的服务
crond.service 当程序开启时,定时任务生效
3)crontab命令
crontab -l -u 用户名 列出用户的crontab
crontab -r -u 用户名 删除用户的crontab
crontab -e -u 用户名 编辑用户的crontab
vim /var/spool/cron/用户名 查看用户的crontab
4)文件方式设定定时任务
文件方式建立定时任务:
cd /etc/cron.d/
vim file(file名称任意)
####
格式:* * * * * username action
例子:* * * * * root rm -fr /mnt/*
####
非交互式:
echo "* * * * * root rm -fr /mnt/*" > /etc/cron.d/file
注意:这种方式生成的crontab使用crontab -l看不见。
5)crontab的黑白名单(同at的黑白名单)
/etc/cron.deny 系统中默认存在,再次文件中出现的用户不能执行crontab。
/etc/cron.allow 系统中默认不存在,当文件出现,普通用户不能执行crontab,只有在这个名单中出现的用户可以,并且/etc/cron.deny失效。
这两个名单都不会影响/etc/cron.d目录中定时任务的发起和执行。
4.系统中临时文件的管理方式
cd /usr/lib/tmpfiles.d
vim westos.conf
####
d /mnt/westos 777 root root 5s
####
systemd-tmfiles --create /usr/lib/tmpfiles.d/* 读取地址中所有文件并按照其规则去建立目录
systemd-tmfiles --clean /usr/lib/tmpfiles.d/* 清理建立的目录中临时文件