【正经教程】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吗)

浙公网安备 33010602011771号