【正经教程】Linux基础(七):例行性工作

Linux工作调度的种类 at cron

at

at 处理仅仅执行一次就结束调度的命令,需要atd模块的支持
这个ubuntu上没有自带,macOS是自带的

crontab

crontab 按照一定的周期 循环的执行命令,cron服务是crontab生效的前提条件

at的使用

at [-q queue][-f file][-mldbv] time
at -c job[job ...]
参数说明
-m # 当at完成工作后,即使没有
-l # at -l 相当于atq 列出目前系统上所有该用户的at调度
-d # at -d 相当于atrm, 可以取消一个在at调度中的工作
-v # 可以使用比较明显的格式列出at调度中的任务列表
-c # 可以列出后面接的该项工作的实际命令内容

时间格式
HH:MM		04:00
HH:MM YYYY-MM-DD		04:00 2009-03-17
HH:MM[am|pm] [Month] [Date]		04pm March 17
HH:MM[am|pm] + number [minutes|hours|days|weeks]		now + 3 days
#单位记得要加上s哦

使用at命令时,系统会产生一个新的at shell来执行新的命令,所以最好在要执行的命令里使用绝对路径。

at命令所产生的所有标准输出都会给执行者的mailbox,如果想在屏幕上显示,请使用>/dev/tty1对输出进行重定向。(请使用自己的tty编号,使用tty命令可以查看当前终端的tty编号。)

注意!!!

有关 at 的启动问题。这个功能有时候不是自己就能启动的。用不了我们得先打开有关服务才行

Linux系统下:

/etc/init.d/atd restart
chkconfig atd on # 设置开启自动启动

MacOS系统下

sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.atrun.plist

上述命令的出处来自 man atrun , 两个系统上执行这个命令的命令提示符也很不一样。Linux使用Enter换行后,会出现at>的提示符,MacOS就什么都与没有,换行之后直接光标闪烁。(讲实话我能骂一句mac这搞得很难用吗。好吧是我菜。而且我换了zsh的shell之后更加不习惯了。啊。还要花时间重新学zsh吗)

crontab的使用

anacron 唤醒停机期间的工作任务

posted @ 2021-10-23 11:27  Craven胆小鬼  阅读(91)  评论(0)    收藏  举报