linux中用at重启系统,Linux计划任务之at命令实用案例

Windows系统的计划任务估计大家都用过,图形界面,使用简单。Linux同样有计划任务工具,并且功能更为强大,尤其是结合脚本。Linux里常用2种计划任务工具命令:at和crontab。

1. Linux计划任务工具:at

at命令用于一次性执行某任务。当然,如果你结合能自动循环执行任何的脚本,实际上也能达到循环或定期反复执行的效果。如果你想定期反复执行某任务,首选crontab,而不是at。at只能定时一次性执行某程序或者某脚本。

以CentOS7.5为例,默认情况下,最小化安装并没有包含at工具。需要管理员手动安装。

[root@zcwyou ~]# at

-bash: at: 未找到命令

安装at

[root@zcwyou ~]# yum -y install at

最后系统表明安装成功:

Running transaction

正在安装 : at-3.1.13-23.el7.x86_64 1/1

验证中 : at-3.1.13-23.el7.x86_64 1/1

已安装:

at.x86_64 0:3.1.13-23.el7

完毕!

4a9a06d9dc3ba1304a39e27902c67738.png

CentOS 6开启atd服务。

[root@zcwyou ~]# /etc/init.d/atd start

或者

[root@zcwyou ~]# service atd start

CentOS 6检查:

[root@zcwyou ~]# ps -ef |grep atd

确认能看到/usr/sbin/atd正在运行:

root 53055 1 0 09:30 ? 00:00:00 /usr/sbin/atd -f

CentOS 7,开启atd服务。

[root@zcwyou ~]# systemctl start atd

CentOS 7检查:

[root@zcwyou ~]# systemctl status atd

确认能看到active (running):

Active: active (running)

OK!,现在at功能已经成功开启了。默认情况下,at已经设置好了开机自启动。

4731a8bc5d610d7ee2ca40fc6169b408.png

2. 常见使用方法

2.1 使用at命令定时执行某脚本

需求:2天后,下午6点执行/root/abc.sh,请提前写好abc.sh这个脚本文件,并保证具有x可执行权限。

[root@zcwyou ~]# at 6pm+2 days

执行过程

at> /root/abc.sh

at> 按键盘上的ctrl+d,表示计划任务设置完毕。

at> job 2 at 2018-10-11 18:00

at计划任务保存位置

/var/spool/at

cf1fc2bc1582fe86f5a35be739cf431f.png

2.2 查看at计划任务

查看任务命令atq,可以看到有一个正在等待执行的任务,序号为4

[root@zcwyou ~]# atq

4 2018-10-11 18:00 a root

98890774657c94ab93bf9e4798e4ffb1.png

显示计划任务的自动生成的脚本,以序号为4的任务为例:

[root@zcwyou ~]# at -c 4

8e67378192c170d88f7f82b8a4c5c7b2.png

2.3 使用atrm命令删除计划任务

比如删除序号为4的计划任务:

[root@zcwyou ~]# atrm 4

8e67378192c170d88f7f82b8a4c5c7b2.png

2.4 定时重启

两分钟后后重启服务器

[root@zcwyou ~]# at now +2 minutes

at> reboot

at> 按键盘上的ctrl+d,表示计划任务设置完毕。

at> job 1 at Wed Oct 10 10:09:00 2018

看到job 1被创建了,接下来查看它

[root@zcwyou ~]# atq

1 Wed Oct 10 10:09:00 2018 a root

确实可以看到有一个序号为1的任务等待执行。2分钟后,服务器被重启了。

2.5 指定时间执行任务

明天凌晨2点执行某任务

[root@zcwyou ~]# at 02:00am tomorrow

2018年12月30号凌晨4点执行某任务

[root@zcwyou ~]# at 04:00am 12/30/2018

结合以上例子,可以灵活修改一些时间选项

比如把minutes(分钟)改为hours(小时),2小时后执行某任务。

[root@zcwyou ~]# at now +2 hours

3. at的时间选项

hh:mm,即小时:分钟(当天,如果时间已过,则在第二天执行)

midnight(深夜),noon(中午),teatime(下午茶时间,即下午4点),today,tomorrow等

时间后加am表示上午,pm表示下午

指定具体执行日期mm/dd/yy(月/日/年)或dd.mm.yy(日.月.年)

相对计时法now + n 单位,now是现在时刻,n为数字,单位有minutes、hours、days、weeks,分别表示分钟、小时、天、周

4. 限制用户使用at命令,一个用户名占用一行

允许用户列表:

/etc/at.allow

禁止用户列表

/etc/at.deny

Step1: atd先检查allow列表,如果里面有指定的用户,即可允许该用户使用at。

Step2: 如果用户不在allow列表中,则需要继续查看deny列表文件是否存在并且需要匹配里面的内容,如果deny列表文件存在并且内容为空,则该用户可以使用at。如果deny列表文件不存在,则该用户不能使用at,root用户不受限制。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值