linux例行性任务(定时作业)
linux定时作业(例行性任务)
linux有两种定时作业方式:
• at : 这个工作仅执行一次就从 Linux 系统中的排程中取消;
• cron : 这个工作将持续例行性的作下去!
at仅执行一次
要使用at进行任务在未来某一时刻仅仅执行一次,必须先开启服务atd,一般为了安全系统默认atd服务未开启,使用命令/etc/init.d/atd restart 开启这个服务。
我们可以利用 /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 这个指令。
开启服务后就可以用命令at 来进行工作的排程了,这些一次性的命令任务会被写入文件夹/var/spool/at 下,然后工作就会进入排程状态等待执行,等任务执行完成后就会从该文件下将任务移除。利用命令at将任务写入文件夹/var/spool/at下,at 的具体用法:
好了,让我们来谈一谈 at 这个玩意儿的语法吧!
[root@linux ~]# at [-m] TIME
参数:
-m :当 at 的工作完成后,以 email 的方式通知使用者该工作已完成。
TIME:时间格式,这里可以定义出『什么时候要进行 at 这项工作』的时间,格式有:
HH:MM ex> 04:00
HH:MM YYYY-MM-DD ex> 04:00 2005-12-03
强制规定在某年某月的某一天的特殊时刻进行该工作!
HH:MM[am|pm] [Month] [Date] ex> 04pm December 3
也是一样,强制在某年某月某日的某时刻进行!
HH:MM[am|pm] + number [minutes|hours|days|weeks]
ex> now + 5 minutes ex> 04pm + 3 days
就是说,在某个时间点『再加几个时间后』才进行。
范例:
范例一:再过五分钟后,将 /root/.bashrc 寄给 dmtsai 这个使用者
[root@linux ~]# at now + 5 minutes
at> /bin/mail dmtsai -s "testing at job" < /root/.bashrc
at> <EOT> <==这里输入 [ctrl] + d 就会出现 <EOF> 的字样!代表结束!
job 8 at 2005-09-07 10:47
# 上面这行信息在说明,第 8 个 at 工作将在 2005/09/07 的 10:47 进行!
范例二:由于机房预计于 2005/09/16 停电,我想要在 2005/09/15 23:00 关机?
[root@linux ~]# at 23:00 2005-09-15
at> /bin/sync
at> /bin/sync
at> /sbin/shutdown -h now
at> <EOT>
job 10 at 2005-09-15 23:00
这是我执行的一个at命令在5min后执行,可以看出/var/spool/at文件夹下文件的变化

查看at的定时作业并取消已存在的定时作业
atq显示所有已设置的定时任务,atrm num 删除某个序号的定时作业
crontab循环执行定时作业
使用指令crontab命令添加循环执行的定时作业,和at类似使用这个服务首先需要权限允许,
• /etc/cron.allow: 将可以使用 crontab 的账号写入其中,若不在这个档案内的使用者则不可使用 crontab;
•/etc/cron.deny: 将不可以使用 crontab 的账号写入其中,若未记录到这个档案当中的使用者,就可以使用 crontab 。
首先会检查用户是否存在/etc/cron.allow中,存在则允许,如果在/etc/cron.allow里没有发现用户,则会查找文件/etc/cron.deny如果没有存在用户则用户可以添加定时作业。添加定时作业后会写入文件/var/spool/cron/中。
crontab用法
[root@linux ~]# crontab [-u username] [-l|-e|-r]
参数:
-u :只有 root 才能进行这个任务,亦即帮其它使用者建立/移除 crontab;
-e :编辑 crontab 的工作内容
-l :查阅 crontab 的工作内容
-r :移除 crontab 的工作内容
范例:
范例一:用 dmtsai 在每天的 12:00 发信给自己
[dmtsai@linux ~]$ crontab -e
# 此时会进入 vi 的编辑画面让您编辑工作!注意到,每项工作都是一行。
0 12 * * * mail dmtsai -s "at 12:00" < /home/dmtsai/.bashrc
#分 时 日 月 周 |<==============指令串========================>|
使用crontab -e添加定时作业,crontab -l显示定时作业。
五个*号代表含义从左至右,当周为 0 或 7 时,都代表『星期天』的意思!



linux例行性任务(定时作业)的更多相关文章
- 浅谈 linux 例行性工作 crontab (linux定时任务)
定时任务大家都挺说过,就好比你手机上的闹钟,到了指定的时候就会响起. 今天在对redis缓存进行定时储存时又操作了一把,发现一些细节,写的不好.大家就将就看吧, 首先 简单介绍一下linux 例行性工 ...
- linux例行性工作调度学习(一)
Linux系统中有一种例行性工作(crontab)可以调度,是通过crontab和at来实现的. 这两种工作调度: 一种是例行性的,就是每隔一定的周期要来办的事项. 一种是突发性的,就是这次做完以后就 ...
- 第十五章 例行性工作(crontab)--循环执行的例行性工作调度 crontab(定时任务)
循环执行的例行性工作调度 crontab(定时任务) 15.1 例行性工作调度 不考虑硬件与服务器的链接状态,Linux帮助提醒很多任务. Linux例行性工作是如何进行调度的? Linux调度就是通 ...
- 关于linux例行任务crontab的使用
Linux 例行性任务(也叫周期性任务)命令使用:crontab1.crontab -l 查看当前用户的任务2.crontab -e 编辑(设置)当前用户的任务,执行行不用重启crond服务.3 ...
- Linux学习-循环执行的例行性工作排程
循环执行的例行性工作排程则是由 cron (crond) 这个系统服务来控制的.Linux 系统上面原本就有非常多的例行性工作,因此这个系统服务是默认启动的. 另外, 由于使用者自己也可以进行例行性工 ...
- linux备忘录-例行性工作排程 (crontab)
例行性工作排程 例行性工作排程分为两类 at at是只执行一次就结束的指令安排.要想使用at,必须要有atd服务的支持. crontab crontab是每隔一段时间自动执行的指令安排.crontab ...
- Linux学习-什么是例行性工作排程
那么 Linux 的例行性工作是如何进行排程的呢?所谓的排程就是将这些工作安排执行的流程之意! 咱们的 Linux 排程就是透过 crontab 与 at 这两个东西! Linux 工作排程的种类: ...
- Linux管理,例行性工作,at和cron
at 仅执行一次就结束调度(服务atd必须启动) at的配置信息 1.我们设定的at进程其实都是被以文本的方式写入到/var/spool/at/目录内,然后这些设定的进程便会等待atd服务来启动这些进 ...
- 例行性工作排程 (crontab)
1. 什么是例行性工作排程 1.1 Linux 工作排程的种类: at, crontab 1.2 Linux 上常见的例行性工作2. 仅运行一次的工作排程 2.1 atd 的启动与 at 运行的方式: ...
随机推荐
- 源码部署pxc集群
想了想还是研究一下怎么源码安装pxc吧,毕竟很多组件都是源码安装的. 环境: yum install -y boost-devel libodb-boost-devel check-devel ope ...
- Golang面向对象_继承
package main import "fmt" type Person struct { name string //名字 sex byte //性别 age int //年龄 ...
- ssh 工具
ssh 使用 rsa key 实现无密码访问 server A 要用 rsa key 验证的方式访问 server B 在A上创建/root/.ssh/目录 > chmod -R 700 /ro ...
- OSI7层模型(TCP4层)
OSI7层模型(TCP4层) 第一层:物理层 在局部局域网络上传送帧,它负责管理电脑通信设备和网络媒体之间的互通.包括了针脚.电压.线缆规范.集线器.中继器.网卡.主机适配器等. 第二层:数据链路层 ...
- WIN10安装和使用MySql5.6中遇到的一些问题与解决
WIN10安装和使用MySql5.6中遇到的一些问题与解决 提示一下,安装前需要安装python环境. MySql安装缺少组件MySQL for Excel 如图(转载别人的图,自己的安装时没有截图) ...
- 20145308 《网络对抗》 逆向及BOF基础实践 学习总结
20145308 <网络对抗> 逆向及BOF基础实践 学习总结 实践目的 通过两种方法,实现程序能够运行原本并不会被运行的代码 实践原理 利用foo函数的Bof漏洞,构造一个攻击输入字符串 ...
- bzoj 4044 Virus synthesis - 回文自动机 - 动态规划
题目传送门 需要高级权限的传送门 题目大意 要求用两种操作拼出一个长度为$n$的只包含'A','T','G','C'的字符串 在当前字符串头或字符串结尾添加一个字符 将当前字符串复制,将复制的串翻转, ...
- 5.sql2008分组与嵌套
1.Group by基本介绍;2.Having的使用;3.分组综合应用;4.子查询基本介绍;5.In/Exists/Any/Some/All;6.子查询综合应用; 1.Group by基本介绍:依据B ...
- Python3基础 访问在线的有道词典
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
- yum命令showduplicates安装指定版本包
默认情况下,我们用yum list 或者 yum install 的时候,yum会默认选择最新的版本. 如果我们需要安装指定版本的某个软件包,以使之能够和我们现有环境的软件包版本匹配,那么就需要用到s ...