linux编程at指令蓝牙,Linux系统计划任务之一:at指令(示例代码)

Linux系统的工作任务有两种工作排程方式:

1.一种是未来某个特定的时间点的,该任务执行完后则不再执行。例如在下周某一天几点钟提醒该出门办理签证。

2.一种是例行性的,就是按照设定的某种模式有规律的周期性执行。例如每周日凌晨4点钟进行数据库的备份工作;系统每隔半小时检查系统内存使用情况等。

那么在Linux系统中是如何达到这两个功能的呢?简单的讲,上面两种情况可分别使用at指令与cron系统服务来实现。

一、at方式的例行性工作安排

1.启动atd服务

在linux系统上统一负责未来某个时间点的一次性工作任务的服务就是atd,它在CentOS系统上是默认是打开的。我们只需根据需要配置在某个时间点要执行的工作指令或任务,在时间点到来时atd会自动执行相关任务。atd服务的相关操作如下:#查看系统默认atd服务的状态

[[email protected] ~]# chkconfig --list atd

atd   0:off1:off2:off3:on4:on5:on6:off

#打开该服务方法如下

[[email protected] ~]# /etc/init.d/atd start

#检查当前状态:

[[email protected] ~]# /etc/init.d/atd status

atd (pid  2241) is running...

#显示系统正在运行中。

2.at的工作

at指令有两种工作方式,一种是交互方式,就是用户在at>提示符后输入多个要执行的执行命令,在输入完成后用ctrl+d提交任务。另一种则是将要执行的任务的各指令写入文件中并由at进行调用。#执行at命令,指定在某个时间点输出内容到/tmp/test.at文件

[[email protected] ~]# at 23:05

at> echo "now is:`date ‘+%F %R‘`" >/tmp/test.at

at> cat /etc/fstab >> /tmp/test.at

at> 

job 7 at 2016-06-17 23:05

#查询当前at的所有工作排程

[[email protected] ~]# atq

72016-06-17 23:05 a root

其实,在执行完at指令后,系统会根据用户输入的指令内容自动的生成一文件,并保存在/var/spool/at目录中。如下指令所示:[[email protected] ~]# ll /var/spool/at

总用量 8

-rwx------. 1 root   root   2918 6月  17 22:58 a000070174de29

drwx------. 2 daemon daemon 4096 6月  17 22:40 spool

#显示系统自动生成的at文件

[[email protected] ~]# cat /var/spool/at/a000070174de29

#!/bin/sh

# atrun uid=0 gid=0

# mail root 0

#…….中间删除部分内容

echo "now is:`date ‘+%F %R‘`" >/tmp/test.at

cat /etc/fstab >> /tmp/test.at

marcinDELIMITER6be5911e

# cat /var/spool/at/a000070174de29文件内容结束

#at任务完成后,打开文件,显示执行时间与设定时间一致

[[email protected] ~]# cat /tmp/test.at

now is:2016-06-17 23:05

#

# /etc/fstab

# Created by anaconda on Mon Jun 13 20:04:39 2016

#

# Accessible filesystems, by reference, are maintained under ‘/dev/disk‘

# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info

#

UUID=b770379b-7394-4d18-bb60-31b6bdea2af9 /    ext4    defaults        1 1

#………中间删除一部分内容

proc     /proc      proc    defaults        0 0

上面是采用命令的交互方式,另一种方式则是将要执行的各指令写入文件中并由at进行调用。如下:#编辑文件testat.sh,在文件中输入两指令

[[email protected] tmp]# vim /tmp/testat.sh

echo "now is:`date ‘+%F %T‘`" > /tmp/test2.at

cat /etc/fstab >> /tmp/test2.at

#由at指令在某一时间点调用执行。

[[email protected] ~]# at -f /tmp/testat.sh 23:37

两种指令执行方式虽不同,但过程和效果是一样。

3.at的常用语法

at TIME 设置工作排序

Time可以具体的日期或时间了,如YYYY-MM-DD或例子中的HH:MM,也可以是模糊时间,now, noon, midnight, teatime, tomorrow等。

at –l 或atq :查看工作排程列表

at -d job_num或 atrm job_num : 删除工作排程,后接任务编号

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值