linux延迟任务和定时任务管理
1.延迟任务
临时的,不重复的当延迟任务有输出,输出会以邮件的形式发送给任务发起人
邮件用mail去看
at 时间
任务
ctrl + d 任务发起
[[email protected] ~]# at now+1min
at> rm -fr /mnt/*
at> <EOT> ==(ctrl+d)
job 2 at Thu Apr 12 21:24:00 2018 执行延迟任务“一分钟后删除/mnt/里面所有东西”
[[email protected] ~]# at -l
at -c 查看任务详情
at -c 5 查看编号为5的任务详情
atrm 5 取消编号为5的任务
延迟任务的黑名单
/etc/at.deny 用户的黑名单,被加入到黑名单的用户不能执行at命令
例如将westos用户加入黑名单后,切换到westos用户,不能执行延迟任务,切换到其它用户student,依旧可以执行
延迟任务的白名单
/etc/at.allow 系统默认不存在,需要手动建立,当建立出白名单后,所有的普通用户都不能执行at命令 (除root用户和加入到白名单的用户) {当建立出白名单后,黑名单不生效}
2.定时任务
永久生效发起方式1.
crontab -u username -e"表示设置一个定时任务,以username的身份运行
crontab -u username -l"表示查看设置的定时任务
crontab -u username -r"表示删除设置的定时任务
* * * * *
分 时 天 月 周
常用的时间格式和意义是:
* * * * * 每隔一分钟
* * */2 * * 每隔两天
* 08-17/2 * * * 早上八点到下午五点每隔两小时
* * 01,15 * 6 每个月的1号,15号以及星期六
cat /var/spool/cron/root 查看root用户定时任务保存位置(后面表示用户名,如果时student用户表示student用户的定时任务)
/etc/cron.deny 用户黑名单,被添加到黑名单的用户不能执行crontab命令/etc/cron.allow
系统默认不存在,需要手动建立,当建立出白名单后,所有的普通用户都不能执行crontab命令 (除root用户和加入到白名单的用户) {当建立出白名单后,黑名单不生效}
发起方式2.
cron.d/ cron.daily/ cron.hourly/ cron.monthly/ cron.weekly/
cron.d/ 超级用户设定的自定义定时任务目录,里边是所有的自定义任务文件
* * * * * username 命令 系统级别的自定义任务设定需要指定用户
cron.daily/ 每天执行的定时任务目录
cron.hourly/ 每小时执行的定时任务目录
cron.monthly/ 每月执行的定时任务目录
cron.weekly/ 每周执行的定时任务目录
可以直接在/etc/cron.d/目录下新建文件,生成系统级别定时任务,任务编写规则为
3.非交互式定时任务的设定
echo "* * * * * student date" >> /etc/cron.d/lww 在cron.d/目录下生成一个叫lww的自定义定时任务
4.系统临时文件的管理
定时清理系统文件所需要的命令 systemd-files找到文件所在目录 /usr/bin/systemd-tmpfiles 执行rpm -qf /usr/bin/systemd-tmpfiles 找到安目录装包 systemd-208-11.el7.x86_4 然后执行rpm -ql systemd-208-11.el7.x86_4 找到目录位置 /usr/lib/tmpfiles.d 移动到 /usr/lib/tmpfiles.d 编辑文件 vim tmp.conf编辑文件 d /mnt/tmp 1777 root root 8s
对/mnt/tmp/下超过8s的文件执行操作
pwd 查看当前位置 vim westos.conf 编辑westos文件 systemd-tmpfiles --create /usr/lib/tmpfiles.d/* 建立刚才编辑的文件 cd /mnt/ 切换到/mnt/下 查看刚才建立的文件 cd tmp/ 切换到文件内 touch file 建立新文件 systemd-tmpfiles --clean /usr/lib/tmpfiles.d/*
#系统中服务在正常运行时会产生临时文件
/usr/lib/tmpfiles.d/*.conf ##系统中临时文件的配置
文件类型 文件名称 文件权限 文件所有人 文件所有组 文件存在时间
d /mnt/westos 777 root root 10s
systemd-tmpfiles --create /usr/lib/tmpfiles.d/* ##执行临时文件配置
systemd-tmpfiles --clean /usr/lib/tmpfiles.d/* ##清里临时文件