对于我们日常生活来说,有很多例行需要进行的工作,比如每天早上起床一杯水,例如家人的生日,每天的起床时间等。这性例行的工作有可能被遗忘,但是如果我们用计算机来进行提醒的话,则方便很多。这里就要介绍到Linux 下的例行工作命令:at和crontab.

(一)首先来介绍at:

在有些Linux系统上at并没有启动。如果要启动需要执行如下的命令:

/etc/init.d/atd restart

正在停止 atd: [确定]

正在激活atd: [确定]

再设置一下开机就启动这个服务,免得每次重新启动都要再来一次:

chkconfig
atd on

那么是否是所有的用户都能执行这个命令呢?
事实上at命令是受/etc/at.allow
和/etc/at.deny两个文件的约束,at的工作情况是这样的:

1
先寻找/etc/at.allow文件,写在这个文件里的用户才能执行at

2
如果没有etc/at.allow,那么就寻找/etc/at.deny这个文件。写在/etc/at.deny的用户则不能使用at

3
如果两个文件都不存在,那么只有root用户可以使用at这个命令

由于执行的命令不会显示在终端上,因此可以将结果输出到文本文件中

root@zhf-linux:/home/zhf/zhf#
at now + 1 minutes

warning:
commands will be executed using /bin/sh

at>
sh /home/zhf/zhf/shell_prj/test1.sh > /home/zhf/zhf/test1.txt

at>
<EOT>

job
17 at Mon Sep 25 09:19:00 2017

root@zhf-linux:/home/zhf/zhf#
cat test1.txt

The
scritp name is /home/zhf/zhf/shell_prj/test1.sh

The
total number of parameter is 0

The
first parameter is

The
first parameter is

查询有多少个at任务,要删除某一个任务可以使用atrm
工作号码来删除

root@zhf-linux:/home/zhf/zhf#
atq

4 Thu
Sep 21 22:11:00 2017 a root

root@zhf-linux:/home/zhf/zhf#
atrm 4

root@zhf-linux:/home/zhf/zhf#
atq

crontab:

前面的at命令只能执行一次,执行完了后功能就失效了。如果我们想一直保持这个任务周期的执行就要用到crontab命令。同样的和at命令一样,crontab的权限是在/etc/cron.allow
和/etc/cron.deny中,如果想要查看是否具备crotnab命令,查询这2个文件就可以了

当用户使用crontab命令新建工作调度后,这项工作就会被记录到/var/spool/cron里面。cron执行的每一项的工作都会被记录到/var/log/cron这个日志当中,所以想要查看你的系统中是否有木马在自动运行,也可以查询下/var/log/cron这个日志文件。但是注意,在ubuntun中,日志文件是存在与/var/log/syslog

Crontab的主要参数如下:

-u:
只有root用户才能执行这个任务

-e:编辑crontab的工作内容

-l:查阅crontab的工作内容

-r:删除所有的crontab的工作内容。

crontab的格式如下:

0
12 * * * 命令

第一个代表分钟:0-59

第二个代表小时:0-23

第三个代表日期:1-31

第四个代表月份:1-12

第5个代表周:0-7

第六个就是要执行的命令

*代表任何时刻都接受的意思

,逗号表示执行时段的意思,比如0
3,6 表示工作时间是3点和6点就可以

-减号:代表一段时间内,比如0
3-6 表示工作时间是从3点到6点

/n:代表每隔多久,n设置具体的周期。*/5
* * 代表每隔5分钟

来看一个具体的例子,下面这个命令是设置每隔一分钟就执行下test1.sh这个文件

*/1
* * * * /home/zhf/zhf/shell_prj/test1.sh

可以通过crontab
-l查询到这个命令

root@zhf-linux:/var/log#
crontab -l

*/1
* * * * /home/zhf/zhf/shell_prj/test1.sh

查询日志中的记录,可以看到每隔一分钟都在执行。

root@zhf-linux:/var/log#
cat syslog | grep 'shell_prj'

Sep
25 09:29:01 zhf-linux CRON[3788]: (root) CMD
(/home/zhf/zhf/shell_prj/test1.sh)

Sep
25 09:30:01 zhf-linux CRON[3803]: (root) CMD
(/home/zhf/zhf/shell_prj/test1.sh)

Sep
25 09:31:01 zhf-linux CRON[3813]: (root) CMD
(/home/zhf/zhf/shell_prj/test1.sh)

Sep
25 09:32:01 zhf-linux CRON[3829]: (root) CMD
(/home/zhf/zhf/shell_prj/test1.sh)

Sep
25 09:33:01 zhf-linux CRON[3843]: (root) CMD
(/home/zhf/zhf/shell_prj/test1.sh)

Sep
25 09:34:01 zhf-linux CRON[3862]: (root) CMD
(/home/zhf/zhf/shell_prj/test1.sh)

Sep
25 09:35:01 zhf-linux CRON[3872]: (root) CMD
(/home/zhf/zhf/shell_prj/test1.sh)

Sep
25 09:36:01 zhf-linux CRON[3883]: (root) CMD
(/home/zhf/zhf/shell_prj/test1.sh)

Sep
25 09:37:01 zhf-linux CRON[3909]: (root) CMD
(/home/zhf/zhf/shell_prj/test1.sh)

Sep
25 09:38:01 zhf-linux CRON[3921]: (root) CMD
(/home/zhf/zhf/shell_prj/test1.sh)

Sep
25 09:39:01 zhf-linux CRON[3943]: (root) CMD
(/home/zhf/zhf/shell_prj/test1.sh)

Sep
25 09:40:01 zhf-linux CRON[3953]: (root) CMD
(/home/zhf/zhf/shell_prj/test1.sh)

删除掉所有的任务

root@zhf-linux:/var/log#
crontab -r

root@zhf-linux:/var/log#
crontab -l

no
crontab for root

一起来学linux:例行性任务之at和crontab的更多相关文章

  1. 浅谈 linux 例行性工作 crontab (linux定时任务)

    定时任务大家都挺说过,就好比你手机上的闹钟,到了指定的时候就会响起. 今天在对redis缓存进行定时储存时又操作了一把,发现一些细节,写的不好.大家就将就看吧, 首先 简单介绍一下linux 例行性工 ...

  2. linux例行性任务(定时作业)

    linux定时作业(例行性任务) linux有两种定时作业方式: • at : 这个工作仅执行一次就从 Linux 系统中的排程中取消: • cron : 这个工作将持续例行性的作下去! at仅执行一 ...

  3. linux例行性工作调度学习(一)

    Linux系统中有一种例行性工作(crontab)可以调度,是通过crontab和at来实现的. 这两种工作调度: 一种是例行性的,就是每隔一定的周期要来办的事项. 一种是突发性的,就是这次做完以后就 ...

  4. 例行性工作排程 (crontab)

    说白了,就是一些例行工作的日常执行的排序程序 Linux  工作排程的种类:  at,cron 鸟叔说,atd并不是在所有版本都是开启的,但是centos7默认是开启的 [root@localhost ...

  5. 关于linux例行任务crontab的使用

    Linux 例行性任务(也叫周期性任务)命令使用:crontab1.crontab -l   查看当前用户的任务2.crontab -e  编辑(设置)当前用户的任务,执行行不用重启crond服务.3 ...

  6. 第十五章 例行性工作(crontab)--循环执行的例行性工作调度 crontab(定时任务)

    循环执行的例行性工作调度 crontab(定时任务) 15.1 例行性工作调度 不考虑硬件与服务器的链接状态,Linux帮助提醒很多任务. Linux例行性工作是如何进行调度的? Linux调度就是通 ...

  7. linux备忘录-例行性工作排程 (crontab)

    例行性工作排程 例行性工作排程分为两类 at at是只执行一次就结束的指令安排.要想使用at,必须要有atd服务的支持. crontab crontab是每隔一段时间自动执行的指令安排.crontab ...

  8. Linux学习-循环执行的例行性工作排程

    循环执行的例行性工作排程则是由 cron (crond) 这个系统服务来控制的.Linux 系统上面原本就有非常多的例行性工作,因此这个系统服务是默认启动的. 另外, 由于使用者自己也可以进行例行性工 ...

  9. Linux学习-什么是例行性工作排程

    那么 Linux 的例行性工作是如何进行排程的呢?所谓的排程就是将这些工作安排执行的流程之意! 咱们的 Linux 排程就是透过 crontab 与 at 这两个东西! Linux 工作排程的种类: ...

随机推荐

  1. Akka Stream之Graph

    最近在项目中需要实现图的一些操作,因此,初步考虑使用Akka Stream的Graph实现.从而学习了下: 一.介绍 我们知道在Akka Stream中有三种简单的线性数据流操作:Source/Flo ...

  2. 记录一次(xheditor-1.1.6-zh-cn.min.js)的错误:Cannot read property 'match' of undefined的问题解决

    由于使用了xheditor富文本框,且这个版本是2011年开发的系统,当时只有IE8,所以一切正常. 但是问题来了,今天使用IE11测试和谷歌浏览器测试,发现一直报这个错误: 且google了一下,没 ...

  3. iphone/iOS 访问本地数据库sqlite3

    Phone也支持访问本地数据库Sqlite 3.这里简单的介绍一下iPhone上Sqlite 3的使用方法. 首先需要在项目中引用Sqlite 3的开发包,下面是在iPhone SDK 3.0下的目录 ...

  4. quick-cocos2d 设置横屏

    quick cocos2d新建项目,在xcode中 起模拟器,默认的是竖屏,我想做一个横屏的游戏,前面已经说了 选中你的项目,在General这个标签内,Deoployment info的这个分组,有 ...

  5. Python中xml、字典、json、类四种数据的转换

    最近学python,觉得python很强很大很强大,写一个学习随笔,当作留念注:xml.字典.json.类四种数据的转换,从左到右依次转换,即xml要转换为类时,先将xml转换为字典,再将字典转换为j ...

  6. iOS开发--从TQRichTextViewDemo中学会分析project

    下载地址: http://code4app.com/ios/TQRichTextView/5244fe9c6803fa0862000000 1.首先找到AppDelegate类.不管一个project ...

  7. [Redis]windows下redis的安装和启动

    官方的下载地址是: http://redis.io/download 在win64一栏中能够看到redis原本是没有windows版本号的,windows版本号是Microsoft Open Tech ...

  8. hdu-5015-233 Matrix-矩阵

    非常显然矩阵的第一列为: 0 a[1] a[2] a[3] a[4] 我们转化一下,转化为 23 a[1] a[2] a[3] a[4] 3 那么由第一列转移到第二列则为 23*10+3 a[1]+2 ...

  9. 【Python】合并(拼接)字符串

    在很多情况下,我们都需要合并字符串.例如:需要将姓氏与名字存储在不同的变量中,然后显示的时候再将他们合二为一 first_name = 'oliver' last_name = 'smith' ful ...

  10. hdu4857 &amp; BestCoder Round #1 逃生(拓扑逆排序+优先队列)

    题目链接:http://acm.hdu.edu.cn/showproblem.php? pid=4857 ----------------------------------------------- ...