包含at命令linux.的词条

linux中at命令

at命令

辽源网站制作公司哪家好,找创新互联公司!从网页设计、网站建设、微信开发、APP开发、成都响应式网站建设公司等网站项目制作,到程序开发,运营维护。创新互联公司从2013年创立到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联公司

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

格式:at+时间

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

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

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

置和文件

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

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

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

at init 0 /root/2.txt //init 0:系统计划启动任务时间执行init 0(关机)命令;/root/2.txt执

行命令写入位置和文件

例3:在固定时间内添加一个用户(这时建立的用户没有密码)

#at 12:00(时间) //at命令设定12:00执行一项操作

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

ctrl+d //退出at命令

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

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

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

例1:cat(vi) 1.txt

日 2月 6 09:21:28 CST 2005

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

格式:atq

例:atq

1 2005-02-06 09:23 a root

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

格式:atrm+任务号

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

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

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

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

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

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

rm -f a0000a0119b0df //删除计划任务

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

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

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

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

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

vi /etc/at.deny //对at.deny文件进行编辑

text //对at.deny文件进行编辑,写入text用户名,进行at命令限制,然后wq(保存退出)

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

su - text //切换到text用户

at 12:00 //text用户执行at命令,如果被限制则出现下面的提示。

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文件

vi /etc/at.allow //对at.allow文件进行编辑

text //对at.allow文件进行编辑,写入text用户名,该用户名可以执行at命令,然后wq(保存退出)。

su - text //切换到text用户

at 12:00 //text用户执行at命令,若不出现上面所说的提示就可以进行at命令设定了。

at命令格式

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

例:at 4:00 2004-11-27

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

例:4pm + 3days :3天以后下午4:00执行at命令设定的计划任务。

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 可以让你免除网络断线后的困扰。

其实 batch 是利用 at 来进行指令的下达!只是加入一些控制参数而已。这个 batch 神奇的地方在于:他会在 CPU 的工作负载小于 0.8 的时候,才进行你所下达的工作任务啦!

那什么是工作负载 0.8 呢?这个工作负载的意思是: CPU 在单一时间点所负责的工作数量。不是CPU 的使用率喔! 举例来说,如果我有一只程序他需要一直使用 CPU 的运算功能,那么此 时 CPU 的使用率可能到达 100% , 但是 CPU 的工作负载则是趋近于“ 1 ”,因为 CPU 仅负责一个工作!如果同时执行这样的程序两支呢? CPU 的使用率还是 100% ,但是工作负载 则变成 2 了! 所以也就是说,当 CPU 的工作负载越大,代表 CPU 必须要在不同的工作之间进行频繁的工 作切换。 因为一直切换 工作,所以会导致系统忙碌啊! 系统如果很忙碌,还要额外进行 at ,不太合理!所以才有 batch 指令的产生!

下面来实验一下 batch 好了!为了产生 CPU 较高的工作负载,我们用了 计算 pi 的脚本,连续执行 4 次这只程序, 来仿真高负载,然后看看batch 的工作现象。

使用 uptime 可以观察到 1, 5, 15 分钟的“平均工作负载”量,因为是平均值,所以当我们如上 表删除掉四个工作后,工作负载不会立即降低, 需要一小段时间让这个 1 分钟平均值慢慢回 复到接近 0 啊!当小于 0.8 之后的“整分钟时间”时,atd 就会将 batch 的工作执行掉了!

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

linux开机自启动命令

用户想要在linux开机的时候自启动相关的程序。那我们要怎么设置呢?下面由我为大家整理了linux下开机自启动命令的相关知识,希望对大家有所帮助!

linux下开机自启动命令

1.开机启动时自动运行程序

Linux加载后, 它将初始化硬件和设备驱动, 然后运行第一个进程init。init根据配置文件继续引导过程,启动其它进程。通常情况下,修改放置在 /etc/rc或 /etc/rc.d 或 /etc/rc?.d 目录下的脚本文件,可以使init自动启动其它程序。

例如:编辑 /etc/rc.d/rc.local 文件,在文件最末加上一行"xinit"或"startx",可以在开机启动后直接进入X-Window。

扩展:其他情况下linux自启动程序命令

2.登录时自动运行程序

用户登录时,bash首先自动执行系统管理员建立的全局登录script :/etc/profile。然后bash在用户起始目录下按顺序查找三个特殊文件中的一个:/.bash_profile、/.bash_login、 /.profile,但只执行最先找到的一个。

因此,只需根据实际需要在上述文件中加入命令就可以实现用户登录时自动运行某些程序(类似于DOS下的Autoexec.bat)。

3.退出登录时自动运行程序

退出登录时,bash自动执行个人的退出登录脚本/.bash_logout。例如,在/.bash_logout中加入命令"tar -cvzf c.source.tgz *.c",则在每次退出登录时自动执行 "tar" 命令备份 *.c 文件。

4.定期自动运行程序

linux有一个称为crond的守护程序,主要功能是周期性地检查 /var/spool/cron目录下的一组命令文件的内容,并在设定的时间执行这些文件中的命令。用户可以通过crontab 命令来建立、修改、删除这些命令文件。

例如,建立文件crondFile,内容为"00 9 23 Jan * HappyBirthday",运行"crontab cronFile"命令后,每当元月23日上午9:00系统自动执行"HappyBirthday"的程序("*"表示不管当天是星期几)。 (/etc/crontab中配置命令即可)也可以

5.定时自动运行程序一次

定时执行命令at 与crond 类似(但它只执行一次):命令在给定的时间执行,但不自动重复。at命令的一般格式为:at [ -f file ] time ,在指定的时间执行file文件中所给出的所有命令。也可直接从键盘输入命令:

6.创建开机自启动脚本

1) 将你的启动脚本复制到 /etc/init.d目录下

以下假设你的脚本文件名为 test。

2) 设置脚本文件的权限

$ sudo chmod 755 /etc/init.d/test

3) 执行如下命令将脚本放到启动脚本中去:

$ cd /etc/init.d

$ sudo update-rc.d test defaults 95

注:其中数字95是脚本启动的顺序号,按照自己的需要相应修改即可。在你有多个启动脚本,而它们之间又有先后启动的依赖关系时你就知道这个数字的具体作用了。该命令的输出信息参考如下:

update-rc.d: warning: /etc/init.d/test missing LSB informationupdate-rc.d: see

卸载启动脚本的方法:

$ cd /etc/init.d

$ sudo update-rc.d -f test remove

命令输出的信息参考如下:

Removing any system startup links for /etc/init.d/test … /etc/rc0.d/K95test /etc/rc1.d/K95test /etc/rc2.d/S95test /etc/rc3.d/S95test /etc/rc4.d/S95test /etc/rc5.d/S95test /etc/rc6.d/K95test

Linux中的at命令有什么用?

at命令用来安排一个程序在未来的做一次一次性执行。所有提交的任务都被放在 /var/spool/at 目录下并且到了执行时间的时候通过atd守护进程来执行。还有不会的请参考《linux就该这么学》,针对各种linux疑难杂症,帮助linux学习者。

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 : 印出版本编号 

-q : 使用指定的伫列(Queue)来储存,at 的资料是存放在所谓的 queue 中,使用者可以同时使用多个 queue,而 queue 的编号为 a, b, c... z 以及 A, B, ... Z 共 52 个 

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

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

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

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

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

at命令执行流程

# at 2:05 tomorrow

at/home/kyle/do_job

at Ctrl+D

AT Time中的时间表示方法

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

时 间 例子 说明

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

Minute    at now + 5 minutes   任务在5分钟后运行

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

Days      at now + 3 days      任务在3天后运行

Weeks     at now + 2 weeks     任务在两周后运行

Fixed     at midnight          任务在午夜运行

Fixed     at 10:30pm           任务在晚上10点30分

Fixed     at 23:59 12/31/2018 任务在2018年12月31号23点59分

19. Linux的at定时任务调度

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

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

1.2 默认情况下,atd守护进程每60s检查作业队列,有作业时,会检查作业运行时间,如果时间与当前时间匹配,则运行此作业

1.3 at命令是一次性定时计划任务,执行完一个任务后就不再执行这个任务了

1.4 在使用at命令的时候,一定要保证atd进程的启动,可以使用相关指令查看

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

at [选项] [时间]

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

4.1 当天的hh:mm(小时:分钟),假如这个时间已经过去,那么就第二天的这个时间执行。例如04:00

4.2 模糊的词语,例如midnight、noon、teatime(下午茶时间,16:00左右)

4.3 采用12小时计时制,例如8am

4.4 指定执行命令的具体日期,格式为month dat(月 日)或者mm/dd/yy或者dd.mm.yy,指定的日期必须跟着写在在指定时间的后面,例如:04:00 2021-3-1就是2021年3月1日凌晨4点整执行

4.5 相对计时法,指定格式为now + count time-units,now就是当前时间,time-units是时间单位,可以是minutes、hours、days、weeks。count是时间的数量,例如:now + 5 minutes

4.6 直接用today、tomorrow来指定完成命令的时间

5.1 2天后的下午5点,执行/bin/ls /home指令

at 5pm + 2 days 按回车键

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

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

5.2 atq指令可以直接执行,查看系统中待执行的工作任务

5.3 明天17:00输出时间到指定文件内 /root/date100.log

at 17:00 tomorrow 按回车键

date /root/date100.log

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

5.4 2分钟后

at now + 2 minutes

5.5 删除已经设置的任务,atrm 编号

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


文章名称:包含at命令linux.的词条
网页路径:http://ybzwz.com/article/hdjgpp.html