您的位置:首页 > 运维架构 > Linux

LINUX之一次性(at)计划任务及周期性(crontab)计划任务

2019-06-16 08:14 2171 查看

计划任务:创建和管理在指定时间自动执行的任务
注意事项:要使计划任务在指定时间内自动运行,计划任务的服务必须能是开启的。
计划任务分为两类:
1、一次性计划任务
2、周期性计划任务

  • 一次性计划任务
  • 在指定的日期、时间点自动的执行预先设置的一些命令操作,属于一次性计划任务
  • 系统服务的名称:/etc/init.d/atd
  • 设置格式:
    at [HH:MM] [yyyy-mm-dd]
  • atq命令:查询当前设置的at任务列表 同
    at -l
  • atrm命令:删除指定任务编号的at任务
    atrm 编号
    at -d
  • at -c 任务号
    查看计划任务的具体内容(和at计划任务文件/var/spool/at/以a开头的文件内容相同)
  • at任务结束,文件消失
  • 例:创建at计划任务(按ctrl +D提交任务)
[root@rhel3 ~]# at 02:35
at> ls /tmp
at> <EOT>
job 4 at 2019-03-29 02:35

查看计划任务

[root@rhel3 ~]# at -l
4	2019-03-29 02:35 a root

查看具体内容

[root@rhel3 ~]# at -c 4

当at任务执行结束,就查不到at任务,其计划任务文件也消失

[root@rhel3 ~]# at -l
[root@rhel3 ~]#


在/var/spool/mail/root下能看到at任务执行的结果(ls /tmp)

[root@rhel3 ~]# tail -14 /var/spool/mail/root
From root@rhel3.localdomain  Fri Mar 29 02:35:01 2019
Return-Path: <root@rhel3.localdomain>
X-Original-To: root
Delivered-To: root@rhel3.localdomain
Received: by rhel3.localdomain (Postfix, from userid 0)
id 89E17CC042B; Fri, 29 Mar 2019 02:35:01 +0800 (CST)
Subject: Output from your job        4
To: root@rhel3.localdomain
Message-Id: <20190328183501.89E17CC042B@rhel3.localdomain>
Date: Fri, 29 Mar 2019 02:35:01 +0800 (CST)
From: root@rhel3.localdomain (root)

yum.log

我们可以验证一下

[root@rhel3 ~]# ls /tmp
yum.log
[root@rhel3 ~]#

补充:
at命令常用格式:

at   [HH:MM]
at   [HH:MM]     [yyyy-mm-dd]
at   now   +数字  [minutes|hours|days|weeks]
at   时间    -f   文件    使用文件中的命令作为计划任务
at   now      +5     minutes   -f       /root/test.sh

at计划任务还有两个文件:
/etc/at.deny----只有该名单里面的人不可以使用
/etc/at.allow-----只用该名单里面的人可以使用(这个文件一般不存在,如果需要,自行创建)

  • 周期性计划任务

  • 按照预先设置的时间周期(分钟、小时、天…)重复执行用户执行的命令操作,这属于周期计划人任务

  • 服务名称:

    /etc/init.d/crond

  • 主要设置文件:用户定义的设置,位于文件

    /etc/spool/cron/用户名

  • cron服务配置文件:

    /etc/crontab
    (包含三部分:注释、环境变量、cron命令)

  • 注意:crond计划任务里的命令有时可能不被执行,因为cron的环境变量PATH 跟系统的PATH 不太一样,它的PATH 路径默认值为:

    PATH=/sbin:/bin:/usr/sbin:/usr/bin
    ,所以这就造成很多命令不能使用,解决办法:1、自己设置cron的PATH环境变量 2、用命令的绝对路径,如
    ls
    我们可以使用:
    /bin/ls

  • cron服务日志文件:

    /var/log/cron

  • 管理cron计划任务:
    编辑计划任务:

    crontab -e [-u 用户名]

    查看计划任务:
    crontab -l [-u 用户名]

    删除计划任务:
    crontab -r [-u 用户名 ]

    cron 命令的含义:

50           3         2        1             *            run_commandfe
分钟      小时     日期    月份       星期        命令

注意:
root用户可以管理指定用户的计划任务,普通用户只能管理自己的计划任务

  • 时间数值的表示方法:
*     表示该范围内的任意时间
,    表示间隔的多个不连续时间点
-     表示一个连续的时间范围
/n    指定间隔的时间频率

例:

0  17  *  *  1- 5		  周一到周五每天17:00
30  8  *  *  1,3,5	      每周一、三、五的8点30分
0  8-18  *  *  *          8点到18点整
0  12  */3  *  *		  每隔3天的12点整
  • 例:
    创建cron计划任务
[root@rhel3 ~]# crontab -e
no crontab for root - using an empty one

30 03 * * 1-5 /bin/ls
查看cron计划任务
[root@rhel3 ~]# crontab -l
30 03 * * 1-5 /bin/ls

也可以在

/var/spool/cron/用户名下
查看

[root@rhel3 ~]# cd /var/spool/cron
[root@rhel3 cron]# ls
root
[root@rhel3 cron]# cat root
30 03 * * 1-5 /bin/ls

到达指定时间

[root@rhel3 ~]# date
Fri Mar 29 03:30:06 CST 2019
You have new mail in /var/spool/mail/root

/var/log/cron
中可以看到cron执行的命令

[root@rhel3 cron]# tail -1 /var/log/cron
Mar 29 03:30:01 rhel3 CROND[2981]: (root) CMD (/bin/ls)

/var/spool/mail/root
中可以查看执行的结果

[root@rhel3 ~]# tail -19  /var/spool/mail/root
From: root@rhel3.localdomain (Cron Daemon)
To: root@rhel3.localdomain
Subject: Cron <root@rhel3> /bin/ls
Content-Type: text/plain; charset=UTF-8
Auto-Submitted: auto-generated
X-Cron-Env: <LANG=en_US.UTF-8>
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/root>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=root>
X-Cron-Env: <USER=root>
Message-Id: <20190328193001.5A10CCC042D@rhel3.localdomain>
Date: Fri, 29 Mar 2019 03:30:01 +0800 (CST)

anaconda-ks.cfg
install.log
install.log.syslog
mysql-5.7.15-linux-glibc2.5-x86_64.tar.gz

检验一下:

[root@rhel3 ~]# ls
anaconda-ks.cfg  install.log.syslog
install.log      mysql-5.7.15-linux-glibc2.5-x86_64.tar.gz

删除cron计划任务:

[root@rhel3 cron]# crontab -r
[root@rhel3 cron]# crontab -l
no crontab for root

注意:在只有使用

cron -r
命令时,它会删除所有的cron任务
如果要删除指定的cron任务,就需要在
/var/spool/cron/root
中删除满足条件的一行

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: