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中删除满足条件的一行
相关文章推荐
- Linux中的计划任务—Crontab调度一次性执行的任务at/batch
- Linux计划任务at&batch&crontab
- Linux计划任务(at batch crontab anacron)
- Linux基础之任务计划at、batch、crontab
- Linux学习笔记--计划任务at-crontab命令
- Linux任务计划 (at,crontab)
- Linux任务计划at corn及crontab
- UNIX/Linux 任务计划at和crontab使用详解
- linux计划任务at、batch和crontab命令
- Linux系统上的任务计划(at、crontab)的详细使用方法
- linux周期性任务计划 at及cron的简单总结
- Linux学习之计划任务(at、batch、crontab)篇
- linux中使用at和crontab制定任务计划
- Linux计划任务(at batch crontab anacron)
- 【Linux】计划任务管理crontab、at
- Linux基础之任务计划(at,crontab)
- Linux计划任务(at batch crontab anacron)
- Linux系统上的任务计划(at、crontab)的详细使用方法
- Linux计划任务(at,crontab)
- linux 任务计划,crontab、at 、anacron