定时永久 延时一次
延时任务–at命令
1.at命令设定延时任务
<1>设定在某具体时间执行的任务
at time
do something
(ctrl+D开始执行任务)
<2>设定在某时间长度后执行的任务
at now + time
do something
(ctrl+D开始执行任务)
<3>其他
at -l ##查看任务列表
at -c worknumber ##查看指定任务内容
at -r worknumber ##取消指定任务
2.用户延迟权限设定
用户延迟黑名单 /etc/at.deny:黑名单默认为空,即认为所有用户都有权限执行at,只有名单内用户没有此权限,写入此名单后随即失去权限,但不影响其他用户
用户延迟白名单 /etc/at.allow:本不存在,手动建立后默认所有用户都进入黑名单,在此名单下加入的用户才有权限执行at
3.制作定时任务 crontab
定时任务的服务为 chrond.service,当程序开启时定时任务生效
命令 | 效果 |
---|---|
crontab -e -u username | 对指定用户设置定时任务 |
crontab -u -l username | 查看指定用户的定时任务 |
crontab -r -u username | 删除指定用户的定时任务 |
执行crontab -e -u username后会进入文件描写要设置的定时任务,其具体cron时间表示语法和实例如下表:
语法 | 效果 |
---|---|
05 * * * * | 每小时整点过5分钟 |
05 02 * * * | 每天2:05am |
30 08 01 * * | 每月第一天8:30pm |
00 07 25 12 * | 12月25日7:00am |
30 16 * * 5 | 每个星期五4:30pm |
*/5 * * * * | 每五分钟 |
*/10 9-17 1,15 * * | 每月第一天和第十五天9:00am至5:00pm之间每隔十分钟 |
0 0 1 jan 0 | 1月1日午夜和1月的每个星期日 |
注:属于系统的任务通常保存在/etc/crontab文件中而不是使用crontab -e编辑保存在个人文件中。更好的做法是用文本编辑器创建crontab文件并保存到/etc/cron.b中。/etc/cron.b/crontab文件在日期说明后另加一个字段,表示将运行作业的用户对于需要每天、每周、每月运行一次的脚本,可以直接将其设置为可执行文件,并保存在/etc/cron.{daily,weekly,monthly}中相应目录下。这些任务由/etc/anacron配置的系统anacron服务运行anacron是cron的集成组件,用于更好的管理作业,并确保在作业。
在系统中默认所有用户可以设定cron,用户黑名单/etc/cron.deny,用户白名单/etc/cron.allow,具体情况与用户延迟权限设定黑白名单相似,参照上文即可。
4.系统中的临时文件
系统中服务在正常运行时会产生临时文件,在系统中/usr/lib/tmpfiles.d/标实服务的临时文件存放位置,而清理临时任务用到的就是定时任务,
先watch -n1 ls -lR /mnt/实时监控/mnt/下发生的变化进行观察,
vim /usr/lib/tmpfiles.d/westos.confd
进入该目录建立自己的用来清除临时文件的文件westos.conf
写入d /mnt/westos 1777 root root 5s
其中westos.conf的属性由d表示目录,赋予它1777权限,在/mnt/westos下创建文件超过5s在定时任务开启后会被清除。