Linux计划任务
一、常见定时计划任务设置方式
at or crontab
两种设置方式
- 突发性:临时决定只执行一次的任务
- 定时性:每隔一定周期需重复执行一次的命令
二、at计划任务的使用
1.准备:确认系统中at服务开启状态(检测运行状态和是否开机自启动)
注:定时计划at设置的任务,实际上是交给它的守护进程atd运行的,可以放入后台,脱离终端,且它的运行不会体现在端口上
2.创建计划任务(结束组合键ctrl + d)
注:普通用户也可以设置定时计划任务,但不能超过自己的权限
3.查看at将要执行的计划任务


根据路径查看还未执行的定时计划任务
注:普通用户只能查看自己设置的定时计划任务,但root用户可以查看自己和其他人的计划任务;普通用户也可以通过 at -c 编号 查看自己的定时计划任务
4.at计划任务的其他写法(使用重定向方式写入)
注:这里在a.txt文件中写入命令,然后重定向给定时计划at,实现非交互式设置定时计划任务
5.删除at计划任务
注:root用户也有权限进入/var/spool/at/直接删除掉at定时计划的文件
三、crontab定时任务的使用
作用:可以在无需人工干预的情况下周期性的运行
1.准备工作:启动cron服务
2.crontab命令格式:crontab [选项]
- -e:编辑cron定时计划任务
- -l:查看当前用户定时计划任务
- -u:指定设置crontab用户
- -r:删除当前用户cron定时计划任务
3.crontab -e编辑时的语法
一行对应一个任务,注意编辑时的特殊符号
4.创建计划任务


以非root用户添加定时任务
5.排查所有用户的计划任务
注:所有用户的计划任务,都会在/var/spool/cron/下产生对应的文件
6.系统级别的计划任务

也可以直接在/etc/cron脚本中添加计划任务脚本注:
- cron.d/ #系统自动定期需要做的任务;
- cron.monthly/ #每月执行的脚本;
- cron.weekly/ #每周执行的脚本;
- cron.daily/ #每天执行的脚本;
- cron.hourly/ #每小时执行的脚本;
- crontab #主配置文件 也可添加任务;
按小时、天、周、月执行的脚本需要保存到指定目录下并且为拥有可执行权限脚本
四、at和cron的黑白名单
- /etc/at.deny #at 黑名单,默认存在。
- /etc/cron.deny #cron 黑名单,默认存在。
- /etc/at.allow #at 白名单,默认不存在。
- /etc/cron.allow #cron 白名单,默认不存在。
注:黑名单仅限制名单中用户禁止使用at和cron命令设置定时计划任务,白名单仅允许名单中用户使用at和cron命令设置定时计划任务(直接写入用户名即可,一行一个用户名)
黑白名单哪个优先级更高?
白名单