A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
atd
进程
-bash/zsh: at command not found #Debian apt-get install at #Ubuntu apt-get install at #Alpine apk add at #Arch Linux pacman -S at #Kali Linux apt-get install at #CentOS yum install at #Fedora dnf install at #Raspbian apt-get install at #Docker docker run cmd.cat/at at
#at(选项)(参数) [root@Dev_Test ~]$at --help at: invalid option -- '-' Usage: at [-V] [-q x] [-f file] [-mMlbv] timespec ... at [-V] [-q x] [-f file] [-mMlbv] -t time at -c job ... atq [-V] [-q x] at [ -rd ] job ... atrm [-V] job ... batch
-f:指定包含具体指令的任务文件; -q:指定新任务的队列名称; -l:显示待执行任务的列表; -d:删除指定的待执行任务; -m:任务执行完成后向用户发送 E-Mail。
日期时间:指定任务执行的日期时间。
at 命令 用于在指定时间执行命令。at 允许使用一套相当复杂的指定时间的方法。它能够接受在当天的 hh:mm(小时:分钟) 式的时间指定。假如该时间已过去,那么就放在第二天执行。当然也能够使用 midnight(深夜),noon(中午),teatime(饮茶时间,一般是下午4点)等比较模糊的 词语来指定时间。
用户还能够采用 12 小时计时制,即在时间后面加上 AM(上午)或 PM(下午)来说明是上午还是下午。 也能够指定命令执行的具体日期,指定格式为 month day(月 日)或 mm/dd/yy(月/日/年)或 dd.mm.yy(日.月.年)。指定的日期必须跟在指定时间的后面。
上面介绍的都是绝对计时法,其实还能够使用相对计时法,这对于安排不久就要执行的命令是很有好处的。指定格式为:now + count time-units,now
就是当前时间,time-units 是时间单位,这里能够是 minutes(分钟)、hours(小时)、days(天)、weeks(星期)。count 是时间的数量,究竟是几天,还是几小时,等等。 更有一种计时方法就是直接使用 today(今天)、tomorrow(明天)来指定完成命令的时间。
#三天后的下午 5 点锺执行 /bin/ls [root@localhost ~]$ at 5pm+3 days at> /bin/ls at> <EOT> job 7 at 2020-01-08 17:00 #明天17点钟,输出时间到指定文件内 [root@localhost ~]$ at 17:20 tomorrow at> date >/root/2020.log at> <EOT> job 8 at 2020-01-06 17:20 #计划任务设定后,在没有执行之前我们可以用atq命令来查看系统没有执行工作任务: [root@localhost ~]$ atq 8 2020-01-06 17:20 a root 7 2020-01-08 17:00 a root #删除已经设置的任务 [root@localhost ~]$ atrm 7 [root@localhost ~]$ atq 8 2020-01-06 17:20 a root #显示已经设置的任务内容 [root@localhost ~]$ at -c 8 #!/bin/sh # atrun uid=0 gid=0 # mail root 0 umask 22此处省略n个字符 date >/root/2020.log
运行at命令会遇到 Can't open /var/run/atd.pid to signal atd. No atd running?
,则说明atd这个进程被停止所以无法使用at命令。
#因此查看该服务的进程: [root@localhost ~]$ /etc/init.d/atd status atd is stopped #将atd服务启动: [root@Dev_Test ~]$/etc/init.d/atd start Starting atd: [ OK ] #再执行 at 命令和 atq 命令,则操作成功