延迟任务at
定时任务crontab
at time命令进入延迟任务的发布界面,可以发布一些命令去交给计算机执行,但是精度只可以到分钟,类似于闹钟。
at的时间格式:
HH:MM HH:MM YYYY-MM-DD
HH:MM [am|pm]
HH:MM+5min
now+5day[|min|month|day]
可以添加修饰来获得自己想要的结果。
at -l | atq 查看当前任务
atrm | at -d 取消指定任务
at -c 查看任务内容
at now+1min 延迟一分钟
at -f file 延迟执行文件中的内容
at -m 延迟命令没有输出时仍然发送邮件给执行者
at -M 延迟命令有输出时但不发送邮件给执行者
与at相似的还有batch。不过batch不同于at和crontab的地方在于,batch是等待系统负载小于0.8的时候执行(可能会有延迟),而在系统负载小于0.8的时候立刻执行该命令。
通过修改at的黑白名单可以设置一定的权限
但是默认只有一个黑名单,白名单需要用户自己创建,创建白名单之后会默认优先读取白名单的权限信息(比如白名单说张三可以发布延迟任务,黑名单说张三不能,那么此时张三可以发布延迟任务)
Crontab任务
Crotab需要跟一定的参数才可以使用
用户级周期性任务: crontab -e -u user
系统级的周期性任务: /etc/crontab /etc/cron.d /etc/cron.{monthly,weekly,daily,hourly}
我们可以设置
但是由于周期执行的命令有误,所以不能执行。
进入vim后编辑格式如下:
分钟 小时 天 月 周 命令
*/10 9-17 1,15 * * commands
几个特殊的符号:
*: 每分, 每月, 每周
/n: 每隔n后
-: 1-2, 3-10, 从x到y;
,: 或者
crontab命令
crontab -e 编辑,保存到/var/spool/cron/;
crontab -e -u user 编辑user
crontab -l 列出
crontab -r 删除