Linux之例行(任务调度)
一. 例行命令之at
1.1 at 仅执行一次就从Linux任务中取消
1.2 at 指令可以将工作命令写入工作记录文件,工作记录文件默认存放在/var/spool/at目录内
1.3 at 工作启动后,权限查找顺序:
· 首先查找/etc/at.allow这个文件,写在该文件内的用户才能使用at,没有在这个文件中则不能使用at
· 若没有/etc/at.allow就寻找/etc/at.deny
· 如果两个文件中都不存在的用户,那么就只有root用户才能使用
1.4 at [-m] TIME
参数:
-m 当at工作完成后,以emai的方式通知工作已完成
-TIME 时间格式,可以定义出什么时候要进行at工作,时间格式有:
(1) HH:MM example: 08:30
则at工作会在今天的HH:MM进行,若该时刻以超时,则在明天的此刻会进行
(2) HH:MM YYYY-MM-DD example: 08:21 2016-4-11
强调规定在某年某月某天的特殊时刻进行该工作
(3) HH:MM[am|pm][month][Date] example: 09am October 7
强调在某年某月某日的某时刻进行
(4) HH:MM[am|pm]+number[minutes|hours|days|weeks] example: now + 5minutes; example: 09am+3days
也即在某个时间点再加上若干时间后才执行
注:(*) 对于at指令,最好使用绝对路径下达
(*) at执行时,会传送相关email给自己,但要使用-m参数
(*) at进行工作任务分配后,系统会将at工作独立出bash环境中而直接交给atd程序来管理,因此在下达了at工作后就可以离线了,剩下就全交给Linux管理
(*) 若下达了at之后,发现指令输入错误,则解决办法如下:
使用atq查看刚才下达的at是哪条
然后使用atrm jobnumber删除出错的at指令
二. 例行性命令cron
2.1
·为例系统的安全,也使用/etc/cron.allow和/etc/cron.deny对系统进行保护
· /etc/cron.allow: 将可以使用crontab的帐号写入其中
· /etc/cron.deny: 将不可以使用crontab的帐号写入其中
2.2 crontab [-u username] [-l|-e|-r]
参数:
· -u 只有root才能进行这个任务,帮其它用户建立/移除crontab
· -e 编辑crontab的工作内容
· -l 查阅crontab的工作内容
· -r 移除crontab的工作内容
注:· 使用crontab建立的工作任务,会被记录到/var/spool/cron中以帐号命名的文件内
· cron执行的每项工作都会被记录到/var/log/cron这个登录文件中
2.2.2 时间格式:
* * * * * root /etc/cron.hourly/back.sh
分 时 日 月 周 账户 命令部分
2.2.3 定时的时间规则是:
时间 含义 范围
第1个数字: 分钟 每小时中的第几分钟执行 0-59
第2个数字: 小时 每天的第几个小时执行 0-23
第3个数字: 日期 每月的第几天执行 0-31
第4个数字: 月份 每年的第几个月执行 0-12
第5个数字: 星期 每周的第几天执行 0-6
2.2.1特殊字符
(1)其中*代表任意的意思,即不论何时何日...
(2)其中 , 代表时段的意思,如:若下达的工作是3:00与6:00,则使用0 3,6 * * * command,第二栏中的3,6代表3与6都行
(3)其中 - 代表一段时间范围,如:8点到12点的每小时的20分钟都进行一项工作:
20 8-12 * * * command,,第二栏中的8-12代表8,9,10,11,12
(4)n代表数字,即每隔n单位的意思,如表示每5分钟进行一次:
*/5 * * * * command ,,用*与/5来搭配,也可写成0-59/5来表示
2.2.2例子
· 45 10 * * 1-5 表示从周一到周五的上午10:45执行命令
注:不要把*放在第一个字段,除非你想让该命令每隔多长时间执行
· 0,30 * 13 * 5表示星期五每半小时及每月13号的每半小时
2.2.3 系统的设置: /etc/crontab
cron服务的最低检测限制是“分钟”,所以每分钟就会自动去读取/etc/spool/crontab与/var/spool/con里面的数据,因此只要编辑完/etc/crontab文件且将其存储后,cron的设定就会自动执行
2.2.4 示例:
· * 8 * * * root /bin/bash /root/userdel.sh --表示每到8时都会执行该shell脚本
· */5 * * * * root /root/user/useradd.sh > /dev/null 2>&1
三. Linux 中新建一个cron任务
3.1 使用 sudo crontab -e 命令编辑如下:
00 8 * * 0-6 ~/scriptName.sh [var1 var2]
编辑完后保存退出,则该任务会在每天早上8点被执行
注:若在linux Ubuntu中想重新选择编辑器可使用select-editor 命令
Linux之例行(任务调度)的更多相关文章
- Linux中的任务调度
1.crond,linux中的任务调度器 crond的概念和crontab是不可分割的.crontab是一个命令,常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令.该命令从标准输入 ...
- linux备忘录-例行性工作排程 (crontab)
例行性工作排程 例行性工作排程分为两类 at at是只执行一次就结束的指令安排.要想使用at,必须要有atd服务的支持. crontab crontab是每隔一段时间自动执行的指令安排.crontab ...
- 一起来学linux:例行性任务之at和crontab
对于我们日常生活来说,有很多例行需要进行的工作,比如每天早上起床一杯水,例如家人的生日,每天的起床时间等.这性例行的工作有可能被遗忘,但是如果我们用计算机来进行提醒的话,则方便很多.这里就要介绍到Li ...
- [原]对Linux环境下任务调度一点认识
我一直以来有一个误解,那就是在终端运行某个程序时,按下Ctrl + D时我误以为就是杀死了这个进程,今天才知道原来不是.比如我利用libevent在Linux环境下写了一个网络监听程序,当启动程序之后 ...
- Linux 命令 - crontab: 任务调度
cron 是一个 Linux 下的定时执行工具,可以在无需人工干预的情况下运行作业.守护进程 cron 会读取 crontab 文件,根据配置在指定的时间执行任务.contab 命令用来添加.删除.显 ...
- Linux 的crond 任务调度
一.原理示意图 二.概述 任务调度:是指系统在某个时间执行的特定的命令或程序 任务调度分类: 1.系统工作:有些重要的工作周而复始的执行.如病毒扫描等 2.个别用户工作:个别用户可能希望执行程序,比如 ...
- linux之定时任务调度
crond:任务调度 任务调度:是指系统在某个时间执行特定的程序或命令 任务调度分类: (1)系统工作,有些重要的工作必须周而复始地进行,如病毒扫描等 (2)个别用户工作:个别用户可能希望执行某些程序 ...
- linux中crontab任务调度
一.创建调度任务 指令 crontab -e 进入当前用户编辑界面 crontab -u 用户名 -e 进入指定用户编辑界面 进入crontab任务编辑界面 任务编写格式 #每分钟执行查看一次/ect ...
- Linux之crond任务调度
1. 示意图 2. 基本语法 crontab [选项] # -e : 编辑crontab定时任务 # -l : 查询crontab # -r : 删除当前用户所有的crontab任务 # 例子: # ...
随机推荐
- 转: 尽己力,无愧于心 FastReport.Net 常用功能总汇
FastReport.Net 常用功能总汇 一.常用控件 文本框:输入文字或表达式 表格:设置表格的行列数,输入数字或表达式 子报表:放置子报表后,系统会自动增加一个页面,你可以在此页面上设计需要 ...
- MongoDB学习总结(六) —— 数据库备份和恢复
我们都知道数据库数据经常备份是多么的重要,MongoDB作为一个数据库系统,自然提供了完善,丰富而且好用的备份与恢复机制. 以下介绍三种数据库备份和恢复的方式 > 数据目录直接拷贝 数据库目录直 ...
- 【Java深入研究】2、JVM类加载机制
一.先看看编写出的代码的执行过程: 二.研究类加载机制的意义 从上图可以看出,类加载是Java程序运行的第一步,研究类的加载有助于了解JVM执行过程,并指导开发者采取更有效的措施配合程序执行. 研究类 ...
- BZOJ 1337: 最小圆覆盖1336: [Balkan2002]Alien最小圆覆盖(随机增量法)
今天才知道有一种东西叫随机增量法就来学了= = 挺神奇的= = A.令ci为包括前i个点的最小圆,若第i+1个点无法被ci覆盖,则第i+1个点一定在ci+1上 B.令ci为包括前i个点的最小圆且p在边 ...
- 基于ES6模块标准通过webpack打包HTM5项目
本篇主要演示通过webpack打包phaser项目,webpack安装方法在此处就不一一赘述了 经常用phaser来写html5游戏的朋友可能会发现,当游戏场景比较多时,如果都写在一个js文件中那么将 ...
- 2017-2-24 C#基础 for循环的嵌套
用几个练习题演示一下for循环的嵌套 1.打印以下图形 ★★★★★★★★★★★★★★★ namespace _2017_2_24_for循环的嵌套 { class Program { static v ...
- Angular.js之自定义指令学习笔记
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- 前端福利:使用Wallpaper Engine让自己的桌面炫酷起来
Wallpaper Engine,是一款Steam上的特别特别炫酷的壁纸定制软件.它可以对你的桌面进行定制,可以使用视频,动画,网页等形式来替换壁纸. 注意到没,关键是可以使用Html格式的文件作为桌 ...
- javascipt : filter
过滤 var List = sizes.filter(function (size) { return size.id == 12; }); sizes = [ {id : 10,,stock:130 ...
- 关于 myBatis 中的 jdbcType的细节问题
前几天上线了一个 版本,第二天到公司的时候,在cat上发现了一个长sql查询非常耗时,几乎把线上的项目搞崩溃了.我马上开始排查问题.最终发现 球队的ID传过来的时候是String 类型的,但是在执行s ...