网站首页 > 文章中心 > 其它

linux使用at命令的简单介绍

作者:小编 更新时间:2023-09-06 20:18:00 浏览量:94人看过

linux中at命令

at命令

at:计划任务,在特定的时间执行某项工作,在特定的时间执行一次.

格式:at+时间

例1:date //查看系统当前时间

at 时间 //系统计划启动任务时间

at date /root/1.txt //date:系统计划启动任务时间执行date命令;/root/1.txt执行命令写入位

linux使用at命令的简单介绍-图1

置和文件

ctrl+d退出 //退出at命令

行命令写入位置和文件

atuseradd aaa //在at命令里设定添加用户aaa

ctrl+d //退出at命令

tail -f /etc/passwd //查看/etc/passwd文件后十行是否增加了一个用户aaa

计划任务结束后,查看任务是否写入文件中,可以用cat或vi命令查看.

格式:cat(vi)+(路径)文件名

例1:cat(vi) 1.txt

计划任务设定后,在没有执行之前我们可以用atq命令来查看系统没有执行工作任务.

格式:atq

例:atq

启动计划任务后,如果不想启动设定好的计划任务可以使用atrm命令删除.

格式:atrm+任务号

例:atrm 1 //删除计划任务1

atq //查看计划任务是否删除

还可以进入到/var/spool/at目录里把计划任务删除,计划任务的文件都保存在该目录里,可以用rm -f

文件名来删除(以文件的形式删除计划任务,因为计划任务是以文件形式保存在该目录中)

例:#cd /var/spool/at //进入到/var/spool/at目录中

ls //显示目录中所有文件

在通常情况下,超级用户都可以使用这个命令.对于其他用户来说,能否可以使用就取决于两个文

件:/etc/at.allow和/etc/at.deny.

当"用户名"写入/etc/at.deny中,用户不能执行at命令(管理员限制用户使用at命令).

例:useradd text //新建一个text用户

ls /etc/at.deny //查看at.deny文件内容

cat /etc/at.deny //显示at.deny文件内容

su - text //切换到text用户

You do not have permission to use at.你不允许使用at这个命令

at.allow比at.deny优先级高

at.allow文件中有的用户可以执行at,没有则不能.

linux操作系统在执行用户是否可以执行at命令时,先看at.allow文件没有才看at.deny文件.

注意:linux操作系统默认没有/etc/at.allow文件.

例:ls /etc/at.allow //查看是否已经建立at.allow文件

touch /etc/at.allow //建立/etc/at.allow文件

at命令格式

at HH:MM YYYY-MM-DD //HH(小时):MM(分钟) YYYY(年)-MM(月份)-DD(日)

HH[am pm]+D(天) days //HH(小时)[am(上午)pm(下午)]+days(天)

linux中at的执行结果放在哪里

之前说了使用crontab实现定时执行任务,假如我们只是想要让特定任务运行一次,那么,这时候就要用到at监控程序了.

第一段:at服务

cron是一个linux下 的定时执行工具,可以在无需人工干预的情况下运行作业.

service atd start? ? //启动服务

service atd ?stop? ?//关闭服务

service atd restart?//重启服务

service atd reload? ?//重新载入配置

service atd status? ?//查看服务状态?

第二段:at在配置文件:

at类似打印进程,会把任务放到/var/spool/at目录中,到指定时间运行它 .at命令相当于另一个shell,运行at time命令时,它发送一个个命令,可以输入任意命令或者程序.

第三段:参数详解

at [-V] [-q x] [-f file] [-mldbv] time

at -c job ...

atq [-V] [-q x]

atrm [-V] job ...

-V : 印出版本编号?

-m : 即使程序/指令执行完成后没有输出结果, 也要寄封信给使用者?

-f file : 读入预先写好的命令档.使用者不一定要使用交谈模式来输入,可以先将所有的指定先写入档案后再一次读入?网络应用

-l : 列出所有的指定 (使用者也可以直接使用 atq 而不用 at -l)?

-d : 删除指定 (使用者也可以直接使用 atrm 而不用 at -d)?

-v : 列出所有已经完成但尚未删除的指定?

at命令执行流程

at/home/kyle/do_job

at Ctrl+D

AT Time中的时间表示方法

-----------------------------------------------------------------------

时 间 例子 说明

Hour? ? ?at now + 1 hour? ? ?任务在1小时后运行

Fixed? ?at midnight? ? ? ? 任务在午夜运行

19. Linux的at定时任务调度

与crond不同的是,at任务调度是一次性的,而crond是重复性的

①1 at命令是一次性定时计划任务,at的守护进程atd会以后台模式运行,检查作业队列来运行

ps -ef | grep atd 可以检查atd是否在运行

at [选项] [时间]

按两次 ctrl+d 结束at命令的输入

然后写下那个时刻要执行命令 /bin/ls /home

最后按两次ctrl+d退出at指令

date /root/date100.log

按两次ctrl+d退出at指令的输入

可以用atq列出待执行的任务,列出后第一列就是job编号

linux命令详解之at

Linux下,有两个命令可以用来作为计划任务而执行,

要使用一次性任务计划,linux必须要有负责这个计划任务的服务,那就是atd服务

但是并非所有的linux distribution都默认会打开,我们需要手动激活爱听的任务

如果服务未安装,则需要手动安装

#:yum install - y at 或 #:apt-get install at

如果担心启动是否执行OK的话,可使用命令查看:

#:ps aux |grep atd

或者使用

systemctl status atd

# 查阅一下 atd 目前的状态,Active 状态应是 running

使用 at 这个指令来产生所要运行的工作,并 将这个工作以文本文件的方式写入 /var/spool/cron/atjobs/ 目录内,该工作便能等待 atd 这个服务的取用与执行了. 不过,因为安全的理由,并不是所有的人都可以进行 at 工作调度!

at 的使用限制是利用 /etc/at.allow 与 /etc/at.deny 这两个文件来进行的! 加上这两个文件后,at 的工作情况其实是这样的:

在一般的 distributions 当中,由于假设系统上的所有用户都是可信任的,所以呢系统通常会保留一个空的 /etc/at.deny 文件,意思是允 许所有人使用 at 指令的意思 (您可以自行检查一下该文件). 不过,万一你不希望有某些 使用者使用 at 的话,将那个使用者的帐号写入 /etc/at.deny 即可! 一个帐号写一行.

单一工作调度的进行就使用 at 这个指令!这个指令的运行非常简单!将 at 加上一个时间即可!基本的语法如下:

事实上,当我们使用 at 时会进入一个 at shell 的环境来让使用者下达工作指令,此时,建议 你最好使用绝对路径来下达你的指令,比较不会有问题!由于指令的下达与 PATH 变量有关, 同时与当时的工作目录也有关连 (如果有牵涉到文件的话),所以呢使用绝对路径来下达 指令,会是比较一劳永逸的方法. 举例来说,你在 /tmp 下达 at now 然后输入 mail -s "test" root .bashrc , 问一下,那个 .bashrc 的文件会是在哪里?答案是 /tmp/.bashrc !因为 at 在运行时,会跑到当时下达 at 指令的那个工作目录运行!

要注意的是,如果在 at shell 内的指令并没有任何的讯息输出,那么 at 默认不会发 email 给执行者的. 如果你想要让 at 无论如何都发一封 email 告知你是否执行了指令,那么 可以使用" at -m 时间格式 "来下达指令! at 就会传送一个讯息给执行者,而不论该指令执行有无讯息输出了!

如果要在某某时刻,在我的终端机显示出 Hello 的字样,可以通过终端机的设备来处理!假如你在 tty1 登陆(在命令行里面输入 tty 可以查看),则可以使用 echo "Hello" /dev/tty1 .

at 有另外一个很棒的优点, 由于 at 工作调度的使用上,系统会将该项 at 工作独立出你的 bash 环境中, 直接交给系统的 atd 程序来接管,所以呢,当你下达了 at 的工作之后就可以立刻离线了, 剩下的工作就完全交 给 Linux 管理即可!所以如果有长时间的网络工作时,使用 at 可以让你免除网络断线后的困扰.

什么是"整分钟时间"呢?不论是 at 还是 crontab,他们最小的时间单位是"分 钟",所以,基本上,他们的工作是"每分钟检查一次"来处理的! 就是整分 (秒为 0 的时候),同时,你会发现其实 batch 也是使用 atq/atrm 来管理的!

以上就是土嘎嘎小编为大家整理的linux使用at命令的简单介绍linux使用at命令的简单介绍相关咨询咨询主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章