一次性计划任务
at : 管理一次性计划任务
cat /usr/share/doc/at/timespec : 在这个文件中可以查看到timespec怎么定义时间
at timespec : 创建计划任务,交互式输入,ctrl + d结束输入
timespec举例:
8:05am : 上午8:05分执行
at now + 2 minutes(可接hours、days 或 weeks 为单位): 表示2分钟后执行的计划任务,可交互式输入,按ctrl + d结束
at -l : 列出一次性计划任务
at -c jobnum : 查看计划任务的详细信息
at -d jobnum : 删除指定的计划任务
at timespec < 脚本 : 从脚本中读入计划任务
at timespec -q a-z : 设置计划任务的优先级,a-z依次升高
4 Sat Apr 9 08:18:00 2022 a root
任务编号 计划任务执行的时间 优先级 任务的拥有人
/etc/at.deny : 仅拒绝某些用户执行创建计划任务的权限,其他的用户拒绝,默认都是允许的
/etc/at.allow : 仅允许某些用户执行创建计划任务的权限,其他的用户拒绝
crontab : 计划任务最小时间间隔为每分钟执行,任何用户都可以创建计划任务,root用户可以为普通用户创建计划任务。
/etc/cron.deny : 仅拒绝某些用户执行创建计划任务的权限,其他的用户拒绝
/etc/cron.allow : 仅允许某些用户执行创建计划任务的权限,其他的用户拒绝
/etc/crontab : crontab的配置文件,可在里面配置计划任务
crontab -e : 自行创建一个计划任务
crontab -u 指定的普通用户 -e : 给指定用户创建周期性计划任务
crontab -l : 列出所有计划任务
crontab -r : 删除所有计划任务
* * * * * (前面的所有*表示时间格式) echo hellow 或者 执行脚本(用脚本存放的绝对路径)
分 时 日 月 周
0-59 0-23 1-31 1-12 0-7(其中0和7都是表示星期天)
* 8 * * * 每天的8:00-8:59每分钟执行一次
1,2 9,10 * * * 每天的9:01,9:02,10:01,10:02各执行一次
1-10 10 * * * 每天的10:01-10:10每分钟执行一次
1-10 10-11 1 * * 每月的1号的10:01-10:10,11:01-11:10每分钟执行一次
* 10,12 * * 7 每周的星期天的10:00-12:59,每分钟执行一次
*/10 10-12 * * 7 每周的星期天的10:00-12:59,每隔10分钟执行一次
用户的计划任务保存的路径(所有用户用crontab命令创建的任务都被保存的路径)
/var/spool/cron/username : 在/var/spool/cron/中以用户名命名的文件
系统范围内的cron任务定义在/etc/crontab和/etc/cron.d目录中的文件
建议在/etc/cron.d下面创建自定义的crontab文件执行计划任务
以下4个都是由anacron服务管理的cron脚本,都是需要长期执行的计划任务
/etc/cron.daily : 每天执行的计划任务的脚本
/etc/cron.weekly : 每星期执行的计划任务的脚本
/etc/cron.monthly : 每月执行的计划任务的脚本
/etc/cron.hourly : 每小时执行的计划任务的脚本
在/etc/anacrontab文件中
#period in days delay in minutes job-identifier command
1 5 cron.daily nice run-parts /etc/cron.daily
7 25 cron.weekly nice run-parts /etc/cron.weekly
@monthly 45 cron.monthly nice run-parts /etc/cron.monthly
计划任务的间隔时间 延迟时间 作业的名称 要执行的命令
延迟时间(分钟) : 在电脑长期关闭的生产环境下,重新启动就会执行很多的计划任务,此时如果刚好是满足每周、每时、每日的计划任务都要执行,全部启动负载就比较高,此时通过延迟脚本的运行就可以降低负载