本文主要讲解一次性计划任务的命令at的用法!

1.相关操作命令及功能介绍:

在指定的时间执行一个任务,只能执行一次
进程名为atd,首先需要确认该进程是否启动,并且配置开机自启动

ps -ef | grep atd
/etc/init.d/atd start
chkconfig atd on
chkconfig --list atd

2.命令格式及参数:

at [参数] [时间]

2.1.创建at定时任务

2.1.1.命令行直接配置,注意时间格式

进入编辑任务模式,编辑完成ctrl+D保存退出

at : --
at -t

实例1:

[root@zstest1 ~]# at : --
at> echo "hehe" >/tmp/.txt
at> <EOT>
job at -- :

实例2:

[root@zstest1 ~]# at -t
at> echo "haha" >/tmp/-.txt
at> <EOT>
job 2 at -- :

2.1.2.从指定文件读入任务而不是从标准输入读入

at -f <文件> 

实例:

[root@zstest1 ~]# vim at.txt
echo 'haha20180409-03'>/tmp/-.txt
[root@zstest1 ~]# at -f at.txt -t
job at -- :

注意:
创建完的定时任务保存在/var/spool/at/目录下,以”a0000***“等命名

[root@zstest1 ~]# ll /var/spool/at/
总用量 20
-rwx------ 1 root root 2718 4月 9 18:08 a0000101838373
-rwx------ 1 root root 2703 4月 9 18:17 a00002018e461c
-rwx------ 1 root root 2704 4月 9 18:17 a00003018431d3

2.2.查询计划中的at定时任务

atq
at -l

实例:两个命令显示完全相同

[root@zstest1 ~]# atq
-- : a root
-- : a root
-- : a root

2.3.删除at定时任务

atrm   任务编号
at -d 任务编号

2.4.查看定时任务具体内容

at -c   任务编号

实例:

[root@zstest1 ~]# at -c          # 检查任务配置情况
......省略
module=\(\)\ {\ \ eval\ \`/usr/bin/modulecmd\ bash\ \$\*\`"
"}; export module
cd /root || {
echo 'Execution directory inaccessible' >&
exit
}
${SHELL:-/bin/sh} << 'marcinDELIMITER36791344'
echo 'haha20180409-03'>/tmp/-.txt
marcinDELIMITER36791344

2.5.显示at软件版本信息

at -V 

2.6.当指定的任务完成之后,给用户发送邮件,即使没有标准输出

at -m 

3.at允许使用一套相当复杂的指定时间的方法

3.1.绝对时间计时

1)能够接受在当天的hh:mm(小时:分钟)式的时间指定。假如该时间已过去,那么就放在第二天执行。

2)能够使用midnight(深夜),noon(中午),teatime(饮茶时间,一般是下午4点)等比较模糊的词语来指定时间。
3)能够使用12小时计时制,在时间后面加上AM(上午)或PM(下午)来说明是上午还是下午。
4)能够指定命令执行的具体日期,指定格式为month day(月 日)或mm/dd/yy(月/日/年)或dd.mm.yy(日.月.年)。指定的日期必须跟在指定时间的后面。

5)直接使用today(今天)、tomorrow(明天)来指定完成命令的时间。

3.2.相对计时法,这对于安排不久就要执行的命令是很有好处的。

指定格式为:“具体时间 +  数量   时间单位”

具体时间可以是now或者其他指定的时间
时间单位,可以是minutes(分钟)、hours(小时)、days(天)、weeks(星期)。

3.3.实例演示

1)具体时间执行任务:

at :    # 今天 4点(默认为24小时制)
at
at : tomorrow

2)具体日期的具体时间HH:MM YYYY-MM-DD,必须先写时间,后写日期

at : --
at 04pm June

3)指定在多久以后执行任务:HH:MM[am|pm] + num [minutes|hours|days|weeks]

now +  minutes
04pm + days

4.at 的运行方式及安全配置

at定时任务默认只有root用户可以使用
对于某些特殊需求可以使用 /etc/at.allow 与 /etc/at.deny 这两个文件来进行 at 的使用限制:
加上这两个文件后, at 的工作情况是这样的:
1)先找寻 /etc/at.allow 这个文件,写在这个文件中的使用者才能使用 at ,没有在这个文件中的使用者则不能使用 at (即使没有写在 at.deny 当中);
2)如果 /etc/at.allow 不存在,就寻找 /etc/at.deny 这个文件,若写在这个 at.deny 的使用者则不能使用 at ,而没有在这个 at.deny 文件中的使用者,就可以使用 at 命令了。
3)如果两个文件都不存在,那么只有 root 可以使用 at 这个命令。
由以内容可知 /etc/at.allow 是管理较为严格的方式,而 /etc/at.deny 则较为松散 (因为帐号没有在该文件中,就能够运行 at 了)。
在一般的 distributions 当中,由于假设系统上的所有用户都是可信任的, 因此系统通常会保留一个空的 /etc/at.deny 文件,允许所有人使用 at 命令
如果不希望有某些使用者使用 at 的话,将那个使用者的帐号写入 /etc/at.deny 即可! 一个帐号写一行。

完毕,呵呵呵呵

linux命令-定时任务at的更多相关文章

  1. Linux命令-定时任务命令:crontab

    linux定时任务命令相当于windows=>附件=>系统工具=>计划任务程序. 要想让linux定时任务生效,首先应该先启动crond服务,并且给这个服务设置开机自自动. 默认li ...

  2. Linux命令之Crontab定时任务,利用Crontab定时执行spark任务

    Linux命令之Crontab定时任务,利用Crontab定时执行spark任务 一.Linux命令之Crontab定时任务 1.1 常见Crontab任务 1.1.1 安装crontab 1.1.2 ...

  3. Linux实战教学笔记04:Linux命令基础

    第四节:Linux命令基础 标签(空格分隔):Linux实战教学笔记 第1章 认识操作环境 root:当前登陆的用户名 @分隔符 chensiqi:主机名 -:当前路径位置 用户的提示符 1.1 Li ...

  4. Linux命令随笔

    Linux命令总结 man ==命令帮助; help ==命令的帮助(bash的内置命令); ls ==list,查看目录列表; -ld:查看目录权限; -l:(long)长格式显示属性; -F:给不 ...

  5. 工作中常用的Linux命令:crontab命令

    本文链接:http://www.cnblogs.com/MartinChentf/p/6060252.html (转载请注明出处) crontab是一个用来设置.删除或显示供守护进程cron执行的定时 ...

  6. 工作中常用的Linux命令:目录

    工作两三年,每天都和Linux打交道,但每每使用Linux命令的时候却会像提笔忘字般不知如何使用,常常查手册或到网上找资料.此系列文章主要是为了方便自己在使用命令时随时可查阅.鄙人才疏学浅,文中若有任 ...

  7. LINUX 添加定时任务

    LINUX 添加定时任务 crontab - l按 i:x 先按 esc然后 敲入 命令 :x*/5 3 * * 0 /root/ v.sh ..重启服务 service crond restart

  8. 常用的50条linux 命令

    从今天起,咱开始正式学习python了,于是遍整理了50条linux的常用命令. 1 线上查询帮助命令 :man   遇到什么不会的命令可以 man +你想要查询的命令 (需要有网),因为是英文的所以 ...

  9. Linux命令(持续更新ing)

    *.命令语法:  a.在进行参数设定时,通常为“-”号,若为完整参数名称,则输入“--”符号;  b.指令太长的时候,可以使用“\”符号使指令连续到下一行;  c.各种符号的意义:    ''     ...

随机推荐

  1. 2017中国大学生程序设计竞赛-哈尔滨站 Solution

    A - Palindrome 题意:给出一个字符串,找出其中有多少个子串满足one-half-palindromic 的定义 思路:其实就是找一个i, j  使得 以i为中轴的回文串长度和以j为中轴的 ...

  2. 2017-2018 ACM-ICPC Pacific Northwest Regional Contest (Div. 1) Solution

    A - Odd Palindrome 水. #include <bits/stdc++.h> using namespace std; #define N 110 char s[N]; i ...

  3. CodeForces - 366C Dima and Salad (01背包)

    题意:n件东西,有属性a和属性b.要选取若干件东西,使得\(\frac{\sum a_j}{\sum b_j} = k\).在这个条件下,问\(\sum a_j\)最大是多少. 分析:可以将其转化为0 ...

  4. ng-深度学习-课程笔记-1: 介绍深度学习(Week1)

    1 什么是神经网络( What is a neural network ) 深度学习一般是指非常非常大的神经网络,那什么是神经网络呢? 以房子价格预测为例,现在你有6个房子(样本数量),你知道房子的大 ...

  5. springcloud17---zuul-reg-exp

    package com.itmuch.cloud; import org.springframework.boot.SpringApplication; import org.springframew ...

  6. DB开发之oracle

    常用命令: select table_name from user_tables;  //当前用户的表 select table_name from all_tables;  //所有用户的表 sel ...

  7. object类之toString方法

    object是所有类的基类 如果没有使用extends关键字指明其基类,则默认基类为object类 public class Person{ ........ } 等价于: public class ...

  8. class文件的结构

    任何一个class文件都对应着唯一一个类或接口的定义信息,但反过来说,类或接口的定义信息并不一定都在文件里(比如类或接口也可以通过类加载器直接生成) class文件是一组以8位字节为基础单位的二进制流 ...

  9. 将日期转换为指定的格式:比如转换成 年月日时分秒 这种格式:yyyy-MM-dd hh:mm:ss 或者 yyyy-MM-dd。总结下。

    可以为Date原型添加如下的方法: Date.prototype.format = function(fmt) { var o = { "M+" : this.getMonth() ...

  10. Hadoop平台的基本组成与生态系统

    Hadoop系统运行于一个由普通商用服务器组成的计算集群上,该服务器集群在提供大规模分布式数据存储资源的同时,也提供大规模的并行化计算资源. 在大数据处理软件系统上,随着Apache Hadoop系统 ...