https://www.jianshu.com/p/17f5aa01853f

在linux计划任务中, cron 是周期性运行某任务,假如我只想在未来的某时间点只是要求任务运行一次,这就用到at命令了,因为at只适合用在未来的某时间点。

at服务:

at是由atd服务提供的,在centos6和centos7上启动服务的命令不一样。

查看和执行atd服务

centos6:
service atd start       #启动服务
service atd  stop      #关闭服务
service atd status    #查看服务状态

centos7:
systemctl status atd.service      #查看服务状态
systemctl start atd.service        #启动服务
systemctl stop  atd.service        #关闭服务

语法:

at  [option]  TIME

option(常用的选项):
-V:  显示版本信息:
-l:  列出指定队列中等待运行的作业;相当于atq
-d:  删除指定的作业;相当于atrm
-c:  查看具体作业任务
-f:  /path/from/somefile :从指定的文件中读取任务
-m:  当任务被完成后,将给用户发送邮件,即使没有标准输出
      注意:作业执行命令的结果中的标准输出和错误以邮件通知给相关用户

TIME:定义出什么时候进行 at 这项任务的原因

at的时间格式:TIME
● HH:MM [YYYY-mm-dd]
● noon, midnight, teatime(4pm)
● tomorrow
● now+#{minutes,hours,days, OR weeks}
● HH:MM: 在今日的 HH:MM 进行,若该时刻已过,则明天此时执行任务,命令
● at 02:00
● HH:MM YYYY-MM-DD: 规定在某年某月的某一天的特殊时刻进行该项任务
● at 02:00 2016-09-20
● HH:MM[am|pm] [Month] [Date]   命令
● at 04pm March 17
● at 17:20 tomorow
● HH:MM[am|pm] + number [minutes|hours|days|weeks]: 在某个时间点再加几个时间后才进行该项任务
● at now + 5 minutes
● at 02pm + 3 days

执行at命令的用户的黑白名单:

/etc/at.{allow,deny}
● 白名单:/etc/at.allow 默认这个文件不存在,只有该文件中的用户才能执行at命令。白名单优先级高,有了白名单,黑名单不生效了(同一个用户又在白名单又在黑名单,只生效白名单,即允许此用户)
● 黑名单:/etc/at.deny 默认存在,拒绝该文件中用户执行at命令,而没有在at.deny文件中的使用者则可执行。
● 如果两个文件都不存在,只有 root 可以执行at命令root 不在限制范围内,它是超级用户

案例:

1、at命令的使用
[root@centos6 ~]# at 21:20
at> rm -rf hello
at> <EOT>
job 1 at 2017-08-26 21:20

我定义了在21:20执行 rm -rf hello 这命令
想退出用ctrl +d 或者crtl + \键退出
注意:一般会在邮件有提示,直接输入mail 命令就可以看到了
最好重定向到 &>/dev/null  垃圾箱里去,免得产生大量的信息

2、同时执行多个任务命令
用多行重定向的方法:
[root@centos6 ~]# at 15:00 <<eof  
echo 123
echo 234
eof
命令是在15:00执行

多个执行的命令全部放在专门的文件里然后去调用的方法:
[root@centos6 ~]# vim atcmd
cd
rm -rf 112
pwd
创建atcmd 任务文件,然后用at -f atcmd 13:00  命令去调用执行这个文件   -f是调用的意思。

3、计划任务没有标准输入,我想让命令执行完成后我能看到,就用加上-m 强制发邮件来提醒我的计划任务执行完毕。
at -m 10:07 创建计划任务,用mail查看发现在日记中有记录计划任务执行的命令,还可以在创建计划任务命令后面加日期比如在 10:07 2017-08-27

4、创建用户的白名单:
我要把xingxing这用户加入白名单
默认是没有/etc/at.allow 这文件的所以需要创键
[root@centos6 ~]# vim /etc/at.allow
xingxing
vim /etc/at.allow  把所要加的用户加入者文件里白名单就创建完成了,当然删除白名单也是键入这个文件直接删除就可以了。
[root@centos6 ~]# cat /etc/at.allow     #查看白名单

注意的事项:
1、at依赖与atd 服务, 需要启动才能实现at 任务。
2、默认黑名单的文件时有的,放在/etc/at.deny 这文件里面,想要删除黑
     名单或者创建黑名单里的用户用vim /etc/at.deny 进去就可以了。
3、普通用户也是可以创建任务的,不过得看有没有执行权限。
4、要想在终端打印显示出来需要加wall这个命令 这是广播的意思。

linux执行计划任务at命令的更多相关文章

  1. linux执行sh脚本文件命令

    linux执行sh脚本文件命令 很多时候需要多个命令来完成一项工作,而这个工作又常常是重复的,这个时候我们自然会想到将这些命令写成sh脚本,下次执行下这个脚本一切就都搞定了,下面就是发布代码的一个脚本 ...

  2. Linux下计划任务:crontab 命令的权限说明

    Linux下的计划任务: 使用crontab命令来执行调度,在 Linux 下可以通过创建文件 /etc/cron.allow 或者 /etc/cron.deny 来控制权限,如果 /etc/cron ...

  3. linux 执行计划任务crontab

    crontab 一些常用的命令 service crond start //启动服务 service crond stop //关闭服务 service crond restart //重启服务 se ...

  4. linux 执行脚本1.补充命令 2.后台执行

    nohup是永久执行&是指在后台运行2>&1 是将标准出错重定向到标准输出,这里的标准输出已经重定向到了out.file文件,即将标准出错也输出到out.file文件中.最后一个 ...

  5. Linux中计划任务、周期性任务设置

    Linux中计划任务.周期性任务设置 计划任务:指在未来的特定时间里,执行一次某一特定任务.当然,如果同一任务需要在不同时间点执行执行两次.三次或多次,可以视为多个一次看待. 周期性任务:指某一任务需 ...

  6. Mysql SQL优化&执行计划

    SQL优化准则 禁用select * 使用select count(*) 统计行数 尽量少运算 尽量避免全表扫描,如果可以,在过滤列建立索引 尽量避免在where子句对字段进行null判断 尽量避免在 ...

  7. MySQL慢查询&执行计划

    参考文章: https://blog.csdn.net/tiantianw/article/details/53334566 http://www.cnblogs.com/luyucheng/p/62 ...

  8. Mysql优化和执行计划

    SQL优化准则 禁用select * 使用select count(*) 统计行数 尽量少运算 尽量避免全表扫描,如果可以,在过滤列建立索引 尽量避免在where子句对字段进行null判断 尽量避免在 ...

  9. Linux中计划任务执行脚本crontab-简洁版

    我使用的是ubuntu16,所以在ubuntu中一切正常,在其他linux系统中应该都差不多. 1 计划任务,crontab命令选项:     -u指定一个用户,     -l列出某个用户的任务计划, ...

随机推荐

  1. .NET CORE(C#) WPF简单菜单MVVM绑定

    微信公众号:Dotnet9,网站:Dotnet9,问题或建议:请网站留言, 如果对您有所帮助:欢迎赞赏. .NET CORE(C#) WPF简单菜单MVVM绑定 阅读导航 本文背景 代码实现 本文参考 ...

  2. [Wpf学习] 1.传说中的Main

    原来的C#程序都有Main的,现在用vs新建一个Wpf项目,启动似乎变成App.xmal,前期项目中为了获取启动参数,很是折腾了一番: 1.先是修改App.xaml,添加StartUp事件 <A ...

  3. 初窥ECharts

    近来趁着空闲时间了解了一下 ECharts.也顺带记录一番. 首先要从下载ECharts库,这个从官网可以直接下载. 引入ECharts.JS <head> <meta charse ...

  4. python部署到服务器

    python部署到服务器 linux下的CentOS 7 自带python2.7.5, 使用 python --version 命令查看,因系统需要python2.7.5,因此我们并不卸载,另外安装p ...

  5. 蓝眼睛与红眼睛(The blue-eyed islanders puzzle)

    澳大利亚的华裔数学神童陶哲轩曾在网上贴出来一个问题 The blue-eyed islanders puzzle 让大家思考,逗大家玩儿. 说一个岛上有100个人,其中有5个红眼睛,95个蓝眼睛.这个 ...

  6. 1-2.Kubectl命令行工具

    1.kubectl用法 $~: kubectl [command] [TYPE] [NAME] [flags] [command] 子命令.用于操作Kubernetes集群资源对象. 可取值:[cre ...

  7. python类详细说明、常用内置方法和self的作用

    一.类的定义 在Python中,一切皆对象,即便是类本身,也是一种type类型的特殊对象. class Person: def __init__(self, name, age): self.name ...

  8. Android中创建一个BroadcastReceiver

    首先创建一个java类继承BroadcastReceiver类 package com.example.service; import android.content.BroadcastReceive ...

  9. 用浏览器的油猴子脚本调用IDM下载百度云盘中的资料

    用浏览器的油猴子脚本调用IDM下载百度云盘中的资料(只能支持单个文件下载) 第一步需要现在浏览器中安装油猴子插件Tampermonkey.crx 安装油猴子插件插件主页:https://tamperm ...

  10. webservice之Http传输错误问题

    1.背景:调用第三方webservice服务,正常调用,但是最近由于第三方更换远程调用地址,并且发布服务器(A)是通过代理的方式请求真实服务器地址(B),于是本以为很简单的将客户端调用地址修改为发布地 ...