linux命令at详解

linux at命令详解

##at命令介绍

linux 中执行任务计划有三种命令:at ,batch ,cron.其中,at,batch 是一次性执行,而crontab,则是周期性执行。

指令:at
定时任务,指定一个时间执行一个任务,只执行一次。
语法:# at [参数] [时间]
at> 执行的指令
退出at命令 ctrl+d

命令前提:
需要开启atd进程(在redhat中atd是默认随系统启动而启动)
测试中发现在centos6.5 mini版中没有自带at服务,因此需要自己通过下载

##at命令使用

# yum install at -y
# /etc/init.d/atd status
# ps -ef|grep atd
# chkconfig --list|grep atd

举个例子
# atq   //查询当前的等待任务,被执行之后就不会显示
# at 10:11   //定时10点11分
at> echo "123" > /root/jiankong_log/haha.txt   //输入,回车换行
at> <EOT>   //CTRL+D保存退出
job 5 at 2016-04-29 10:11   
# atq
5       2016-04-29 10:11 a root
再举个例子,有个需求需要注释掉计划任务
# at 23:59
at> sed -i '/Regular3/s/^/#/'  /var/spool/cron/root     
at> sed -i '/Regular4/s/^/#/'  /var/spool/cron/root      
at> <EOT>  
# atrm 5  //删除系统中由at建立的正在等待被执行的任务
这样写脚本不是很方便,我们可以指定一下脚本
# at -f /root/sh/nginx_cut_log.sh 10:20
job 7 at 2016-04-29 10:20
# atq
7       2016-04-29 10:20 a root
# at -f /root/sh/nginx_cut_log.sh 10:30
job 8 at 2016-04-29 10:30
# atq
8       2016-04-29 10:30 a root
7       2016-04-29 10:20 a root
# date
Fri Apr 29 10:19:23 CST 2016
到点了查看一下脚本是否执行    

at -c 8 //打印序号为8的内容

##常见参数:

-m :当指定的任务被完成之后,将给用户发送邮件,即使没有标准输出
-I :atq的别名
-d :atrm的别名
-v :显示任务将被执行的时间
-c :打印任务的内容到标准输出
-V :显示版本信息
-q :后面加<列队> 使用指定的列队
-f :后面加<文件> 从指定文件读入任务而不是从标准输入读入
-t :后面<时间参数> 以时间参数的形式提交要运行的任务

##定义时间

1、HH:MM
说明:在今日的 HH:MM 时刻进行,若该时刻已超过,则明天的 HH:MM 进行此任务。
ex> 04:00

2、HH:MM YYYY-MM-DD
说明:规定在某年某月的某一天的特殊时刻进行该项任务
ex> 04:00 2009-03-17

3、HH:MM[am|pm] [Month] [Date]
说明:规定在某年某月某日的某时刻进行该项任务
ex> 04pm March 17

4、HH:MM[am|pm] + number [minutes|hours|days|weeks]
说明:规定在某个时间点再加多少时间后才进行该项任务
ex> now + 5 minutes
ex> 04pm + 3 days

好了,就这样,其他我也没用过

转载于:https://my.oschina.net/longquan/blog/738152

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
"at" 命令是在 Linux 操作系统中用于一次性运行指定命令或脚本的工具。它允许用户在指定的时间运行一次性任务,而不需要在任务执行前一直等待。以下是关于 "at" 命令更详细的说明: 1. 安装 "at" 命令 在大多数 Linux 发行版中, "at" 命令已经默认安装。如果你的系统上没有安装 "at" 命令,可以使用以下命令安装: ``` sudo apt-get install at ``` 2. 使用 "at" 命令 a. 指定任务执行时间 "at" 命令需要指定任务执行时间,并且可以使用类似于 crontab 的语法来指定时间。例如,可以使用以下命令在 10 分钟后运行一个脚本: ``` at now + 10 minutes ``` b. 输入要执行的命令或脚本 然后在终端中输入要执行的命令或脚本,按下 Ctrl+D 键保存并退出即可。任务将在指定的时间运行。如果你想在任务执行前查看任务列表,可以使用以下命令: ``` atq ``` c. 删除任务 如果你想删除某个任务,可以使用以下命令,其中 "job_number" 是任务 ID: ``` atrm job_number ``` 3. "at" 命令的其他用法 a. 指定执行时间的格式 "at" 命令支持多种时间格式,包括 "HH:MM"、"midnight"、"noon"、"teatime" 等等。例如,以下命令将在下午 3 点执行任务: ``` at 3pm ``` b. 指定任务输出 默认情况下,任务的输出将通过邮件发送给当前用户。如果你想将输出重定向到文件中,可以使用以下命令: ``` at -m -f script.sh now + 10 minutes > output.txt 2>&1 ``` 其中 "-m" 选项指定将输出发送到邮件中,"-f" 选项指定要运行的脚本文件,"> output.txt 2>&1" 语句将输出重定向到文件中。 c. 指定任务执行用户 默认情况下,任务将以当前用户的身份运行。如果你想指定其他用户运行任务,可以使用以下命令: ``` sudo at -f script.sh now + 10 minutes -m -l other_user ``` 其中 "-l" 选项指定要运行任务的用户。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值