linux定时任务 - at定时任务
at命令是一次性定时计划任务,at的守护进程atd会以后台模式运行,检查作业队列来运行作业。atd守护进程会检查系统上的一个特殊目录来获取at命令的提交的作业,默认情况下,atd守护进程每60秒检查一次目录,有作业时,会检查作业运行时间,如果时间与当前时间匹配,则运行此作业。
注意:at命令是一次性定时计划任务,执行完一个任务后不再执行此任务了。
1、at命令格式
at [选项] [时间]
Ctrl + D 结束at命令的输入
在使用at命令的时候,一定要保证atd进程的启动。
[root@vms002 /]# ps -ef|grep -v grep|grep atd
rpcuser 1550 1 0 6月10 ? 00:00:00 /usr/sbin/rpc.statd --no-notify
root 1552 1 0 6月10 ? 00:00:00 /usr/sbin/atd -f
2、at命令参数
选项 | 含义 |
-m | 当指定的任务被完成后,将给用户发送邮件,即使没有标准输出 |
-I | atq的别名 |
-d | atrm的别名 |
-v | 显示任务将被执行的时间 |
-c | 打印任务的内容到标准输出 |
-V | 显示版本信息 |
-q <队列> | 使用指定的队列 |
-f <文件> | 从指定文件读入任务而不是从标准输入读入 |
-t <时间参数> | 以时间参数的形式提交要运行的任务 |
3、时间定义
at允许使用一套相当复杂的指定时间的方法:
● 能够接受在当天的hh:mm(小时:分钟)式的时间指定。假如该时间已过去,那么就放在第二天执行。 例如:04:00
● 能够使用midnight(深夜),noon(中午),teatime(饮茶时间,一般是下午4点)等比较模糊的词语来指定时间。
● 能够采用12小时计时制,即在时间后面加上AM(上午)或PM(下午)来说明是上午还是下午。 例如:12pm
● 能够指定命令执行的具体日期,指定格式为month day(月 日)或mm/dd/yy(月/日/年)或dd.mm.yy(日.月.年),指定的日期必须跟在指定时间的后面。 例如:04:00 2009-03-1
● 能够使用相对计时法。指定格式为:now + count time-units ,now就是当前时间,time-units是时间单位,这里能够是minutes(分钟)、hours(小时)、days(天)、weeks(星期)。count是时间的数量,几天,几小时。 例如:now + 5 minutes 04pm + 3 days
● 能够直接使用today(今天)、tomorrow(明天)来指定完成命令的时间。
4、相关命令
1)at:在特定的时间执行一次性的任务;
2)atq:列出用户的计划任务,如果是超级用户将列出所有用户的任务,结果的输出格式为:作业号、日期、小时、队列和用户名;
3)atrm:根据job number删除at任务;
4)batch:在系统负荷允许的情况下执行at任务,就是在系统空闲的情况下才执行at任务。
5、相关配置文件
1)时间规范的确切定义可以在/usr/share/doc/at-3.1.13/timespec中查看;
2)默认情况下计划任务都是存放在/var/spool/at/文件夹中;
3)root用户可以在任何情况下使用at命令,而其他用户使用at命令的权限定义在/etc/at.allow(被允许使用计划任务的用户)和/etc/at.deny(被拒绝使用计划任务的用户)文件中,默认没有文件需要自己创建允许用户和拒绝用户文件;
4)如果/etc/at.allow文件存在,只有在该文件中的用户名对应的用户才能使用at;
5)如果/etc/at.allow文件不存在,/etc/at.deny存在,所有不在/etc/at.deny文件中的用户可以使用at;
6)at.allow比at.deny优先级高,执行用户是否可以执行at命令,先看at.allow文件中有没有才看at.deny文件;
7)如果/etc/at.allow和/etc/at.deny文件都不存在,则只有root用户能使用at;
8)一个空内容的/etc/at.deny表示任何用户都能使用at命令,这是默认的配置;
9)一般情况下这两个文件存在一个即可。如果只有少数几个用户需要使用计划任务,那么就保留at.allow文件,如果大部分用户都要使用计划任务,那么保留at.deny即可。
6、使用案例
1)控制台输入:
案例1:三天后的下午5点执行/bin/ls /
命令:
[root@vms002 /]# at 5pm+3 days
at> /bin/ls /<EOT>
job 1 at Fri Jun 14 17:00:00 2019
案例2:明天17点钟,输出时间到指定文件内
命令:
[root@vms002 /]# at 17:00 tomorrow
at> date > /root/date.log
at> <EOT>
job 2 at Wed Jun 12 17:00:00 2019
案例3:计划任务设定后,在没有执行之前我们可以用atq命令来查看系统中没有执行的工作任务
命令:
[root@vms002 /]# atq
1 Fri Jun 14 17:00:00 2019 a root
2 Wed Jun 12 17:00:00 2019 a root
案例4:删除已经设置的任务
命令:
[root@vms002 /]# atq
1 Fri Jun 14 17:00:00 2019 a root
2 Wed Jun 12 17:00:00 2019 a root
[root@vms002 /]# atrm 1
[root@vms002 /]# atq
2 Wed Jun 12 17:00:00 2019 a root
案例5:显示已经设置的任务内容
命令:
[root@vms002 /]# at -c 2
#!/bin/sh
# atrun uid=0 gid=0
# mail root 0
umask 22
******此处省略部分内容*****
date > /root/date.log
2)文件输入:
任务:一分钟后执行/tmp/date文件中的内容
命令:
[root@vms002 /]# cat /tmp/date #查看/tmp/date文件中内容
#!/bin/bash
date "+%F %T" > /root/date.log
[root@vms002 /]# at -f /tmp/date now +1 minutes #设置1分钟后执行/tmp/date文件中的内容
job 4 at Tue Jun 11 15:47:00 2019
[root@vms002 /]# atq #查看计划任务是否设置成功
2 Wed Jun 12 17:00:00 2019 a root
4 Tue Jun 11 15:47:00 2019 a root
[root@vms002 /]# date
2019年 06月 11日 星期二 15:46:55 CST
[root@vms002 /]# date
2019年 06月 11日 星期二 15:47:47 CST
[root@vms002 /]# date
2019年 06月 11日 星期二 15:48:02 CST
[root@vms002 /]# cat /root/date.log #一分钟后查看/root/date.log文件中内容,验证计划任务是否执行了。
2019-06-11 15:47:00
linux定时任务 - at定时任务的更多相关文章
- Linux下Crontab定时任务的使用教程 以及 无法执行定时任务的解决方案
前言 本文学习思路:Linux的corntab定时任务的使用教程 --> 定时任务无效的解决方案 Linux的corntab定时任务的使用教程 1. 首先,输入命令 打开crontab定时 ...
- linux 中的定时任务crontab使用方法
linux 中的定时任务crontab使用方法: 切换到root用户,sudo su root (可以设置成不需要输入密码) sudo su - (需要输入当前帐号的密码才能进入.) crontab ...
- linux下添加定时任务。
这周要做一个定时增量更新Elasticsearch索引的功能,以前没有做过定时更新,所以请教了下同事,使用crontab添加linux下的定时任务. 一.linux下定时执行任务的方法 在linux中 ...
- linux的crontab定时任务命令
linux的crontab定时任务命令 cron是一个linux下的定时执行工具. 启动.停止.重启.重新载入配置/sbin/service crond start|stop|restart|relo ...
- linux的at定时任务的使用
linux的at定时任务的使用 使用at只能执行一次性任务:使用at命令需要开启atd进程. 以下情况需要安装at命令: 情况1.查看是否开启atd进程:ps -ef | grep atd.[test ...
- Linux基础之定时任务
30.1)什么是定时任务 定时任务命令是cond,crond就是计划任务,类似于我们平时生活中的闹钟,定点执行. 30.2)为什么要用crond 计划任务主要是做一些周期性的任务,比如凌晨3点定时备份 ...
- linux如何执行定时任务
前言:最近在做一个前端监控系统,用到分表分库的功能,由于代码上无法做到实时新建表,所以只能够曲线救国,使用linux系统的定时任务来完成. ============================== ...
- Linux讲解之定时任务
https://www.php.cn/linux-369884.html Linux讲解之定时任务 原创2018-05-14 10:11:3101319 本文目录: 12.1 配置定时任务 1 ...
- linux ( crontab 定时任务命令)
linux ( crontab 定时任务命令) crontab 定时任务命令 linux 系统则是由 cron (crond) 这个系统服务来控制的.Linux 系统上面原本就有非常多的计划性工 ...
- php如何实现定时任务,php定时任务方法,最佳解决方案,php自动任务处理
php如何实现定时任务,php定时任务方法,最佳解决方案,php自动任务处理 Joe PHP 2012-01-18 定时任务对于php来说一直都是很多朋友的一个难题,但却很多地方都遇到了.比如说:游戏 ...
随机推荐
- ABC231H(二分图最小权边覆盖)
首先将行列分别抽象成 \(h, w\) 个点,每个格子视作连接两个点的一条边,那么问题就转化为了二分图最小权边覆盖问题. 考虑最后答案形如:若干组互不相交的匹配加上其他点连接到匹配内. 于此同时,不在 ...
- KMP 入门
再次学习 \(\rm KMP\) 后不一样的理解. 一些概念 定义字符串 \(S\) 的真 前/后 缀为非自身的 前/后 缀. 定义字符串 \(S\) 的 \(border\) 为 \(S\) 的公共 ...
- CF1408G Clusterization Counting
首先,我们需要给一个连通块找到一个直观的合法判定解. 那么我们必须以一种直观的方式将边按照权值分开,这样才能直观地判定一个合法的组. 一个常见的方式是将边从小到大依次加入进来,那么在任意时刻图上存在的 ...
- 21个实用便利的PHP代码
转载请注明来源:https://www.cnblogs.com/hookjc/ 1. PHP可阅读随机字符串 此代码将创建一个可阅读的字符串,使其更接近词典中的单词,实用且具有密码验证功能. /*** ...
- Keepalived配置与使用(1)
介绍 Keepalived是一个基于VRRP协议来实现的WEB服务高可用方案,可以利用其来避免单点故障.一个WEB服务至少会有2台服务器运行Keepalived,一台为主服务器(MASTER),一台为 ...
- push自定义动画
// // ViewController.m // ViewControllerAnimation // // Created by mac on 15/5/26. // Copyright ...
- python基础语法_8循环语句
http://www.runoob.com/python3/python3-loop.html while 循环 Python中while语句的一般形式: while 判断条件: 语句 无限循环 我们 ...
- 国外很便宜的服务器 一年 2核2G 一年20美元
今年 服务器 //=====================================一下是去年的================================= 优惠码:zhujicepin ...
- 北大博士生提出CAE,下游任务泛化能力优于何恺明MAE
大家好,我是对白. 何恺明时隔两年发一作论文,提出了一种视觉自监督学习新范式-- 用掩蔽自编码器MAE,为视觉大模型开路. 这一次,北大博士生提出一个新方法CAE,在其下游任务中展现的泛化能力超过了M ...
- 学着去看开 你不是一个low程序员
http://www.cocoachina.com/programmer/20160627/16835.html 看完这篇文章 感谢作者