【Linux命令】at、crontab定时任务
crontab定时任务(周期性)
一、简介
通过crontab命令可以在固定的间隔执行系统指令或shell脚本
二、crontab配置文件:
Linux下的任务调度分为两类:系统任务调度和用户任务调度。
Linux系统任务是由 cron (crond) 这个系统服务来控制的,这个系统服务是默认启动的。用户自己设置的计划任务则使用crontab 命令。
查看crontab配置文件:
[root@localhost ~]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root # For details see man crontabs # Example of job definition:
# .---------------- minute ( - )
# | .------------- hour ( - )
# | | .---------- day of month ( - )
# | | | .------- month ( - ) OR jan,feb,mar,apr ...
# | | | | .---- day of week ( - ) (Sunday= or ) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
分析:
第一行指定系统使用的shell环境
第二行指定系统执行命令的路径
第三行指定crond的任务执行信息将通过电子邮件发送给root用户,如果MAILTO变量的值为空,则表示不发送任务执行信息给用户
注意:所有用户定义的crontab 文件都被保存在 /var/spool/cron目录中。其文件名与用户名一致
三、crontab文件含义
用户所建立的crontab文件中,每一行都代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段
格式如下:minute hour day month week command
minute:代表一小时内的第几分,范围 0-59。
hour:代表一天中的第几小时,范围 0-23。
mday:代表一个月中的第几天,范围 1-31。
month:代表一年中第几个月,范围 1-12。
week:代表星期几,范围 0-7 (0及7都是星期天)。
who:要使用什么身份执行该指令,当您使用 crontab -e 时,不必加此字段。
command:所要执行的指令。
"*"代表所有的取值范围内的数字,如月份字段为*,则表示1到12个月;
"/"代表每一定时间间隔的意思,如分钟字段为*/10,表示每10分钟执行1次。
"-"代表从某个区间范围,是闭区间。如“2-5”表示“2,3,4,5”,小时字段中0-23/2表示在0~23点范围内每2个小时执行一次。
","分散的数字(不一定连续),如1,2,3,4,7,9。
四、crontab命令详解
格式:crontab [-u user] file
crontab [ -u user ] [ -i ] { -e | -l | -r }
- • -u user:用于设定某个用户的crontab服务;
- • file: file为命令文件名,表示将file作为crontab的任务列表文件并载入crontab;
- • -e:编辑某个用户的crontab文件内容,如不指定用户则表示当前用户;
- • -l:显示某个用户的crontab文件内容,如不指定用户则表示当前用户;
- • -r:从/var/spool/cron目录中删除某个用户的crontab文件。
- • -i:在删除用户的crontab文件时给确认提示。
五、crontab实例
1)每一分钟执行一次command(因cron默认每1分钟扫描一次,因此全为*即可)
* * * * * command
2)每小时的第3和第15分钟执行command
, * * * * command
3)每天上午8-11点的第3和15分钟执行command:
, - * * * command
4)每隔2天的上午8-11点的第3和15分钟执行command:
, - */ * * command
0 0 */2 * * command //每隔两天凌晨执行command
5)每个星期一的上午8点到11点的第3和第15分钟执行command
, - * * command
6)每晚的21:30重启smb
* * * /etc/init.d/smb restart
7)每月1、10、22日的4 : 45重启smb
,, * * /etc/init.d/smb restart
8)每周六、周日的1 : 10重启smb
* * , /etc/init.d/smb restart
9)每天18 : 00至23 : 00之间每隔30分钟重启smb
, - * * * /etc/init.d/smb restart
10)每一小时重启smb
* */ * * * /etc/init.d/smb restart
11)晚上11点到早上7点之间,每隔一小时重启smb
* -/ * * * /etc/init.d/smb restart
12)每月的4号与每周一到周三的11点重启smb
* mon-wed /etc/init.d/smb restart
13)每小时执行/etc/cron.hourly目录内的脚本
* * * root run-parts /etc/cron.hourly
at定时任务(一次性的)
at只在固定时间执行一次任务。
格式:
# 在命令行输入at,然后指定执行的时间,在输入enter键换行,接下来输入要执行的任务,多任务继续输入enter键换行隔开。输入的任务完毕,此时按下ctrl+d,则会出现“at-> ”,此时输入完毕。屏幕底下会出现类似“job 3 at 2019-11-25 09:17”的字样,证明任务指定成功。 at #执行的时间#
at->#执行的任务脚本#
at->#执行的任务脚本#
at->
PS:如果设置的时间当天已经过了,则会在第二天的固定时间执行
参数:
-m 当指定的任务被完成之后,将给用户发送邮件,即使没有标准输出
-v 显示任务将被执行的时间
-c 打印任务的内容到标准输出
-V显示版本信息
-q<> 使用指定的队列
-t<> 以时间参数的形式提交要运行的任务 # 查看at的进程
[root@VM_0_10_centos ~]# ps -ef | grep atd
[root@VM_0_10_centos ~]# systemctl status atd # 查看任务
[root@VM_0_10_centos ~]# atq
或
[root@VM_0_10_centos ~]# at -l # 查看任务内容
[root@VM_0_10_centos ~]# at -c 2 #删除(这里的2是任务的序号,可以使用at -l查看)
[root@VM_0_10_centos ~]# atrm 2
实例:
# 指定在今天09:00将时间写入testmail.txt文件中
[root@VM_0_10_centos ~]# at 09:00
at> date >> testmail.txt<EOT>
job 1 at Mon Nov 25 09:00:00 2019 # 例如当前时间为08:50,如果输入一个08:00执行的任务,则会在输入命令后,提示第二天执行:
[root@VM_0_10_centos ~]# at 08:00
at> echo "8:00" >> testmail.txt
at> <EOT>
job 2 at Tue Nov 26 08:00:00 2019 # 使用相对时间,1分钟后执行
[root@VM_0_10_centos ~]# at now+1 minutes
at> echo hello > testmail.txt
at> <EOT>
job 3 at Mon Nov 25 09:16:00 2019 # 使用未来时间的绝对时间
[root@VM_0_10_centos ~]# at 09:18 2019-11-25
at> echo world >> testmail.txt
at> <EOT>
job 4 at Mon Nov 25 09:18:00 2019 # 三天后的下午5点执行/bin/ls
# at 5pm+3 days
# at> /bin/ls
PS:如果不希望某些账号使用at命令,可以在/etc/at.deny文件中写入禁止的
用户名。
【Linux命令】at、crontab定时任务的更多相关文章
- Linux命令之Crontab定时任务,利用Crontab定时执行spark任务
Linux命令之Crontab定时任务,利用Crontab定时执行spark任务 一.Linux命令之Crontab定时任务 1.1 常见Crontab任务 1.1.1 安装crontab 1.1.2 ...
- 使用linux下的crontab定时任务跑定时脚本
使用linux下的crontab定时任务跑定时脚本 tags:定时任务 定时脚本 crontab linux定时脚本 linux 引言:应该有许多人曾经很好奇一些定时脚本是怎么做出来的.我们这次就来说 ...
- 工作中常用的Linux命令:crontab命令
本文链接:http://www.cnblogs.com/MartinChentf/p/6060252.html (转载请注明出处) crontab是一个用来设置.删除或显示供守护进程cron执行的定时 ...
- Linux 命令之 crontab
crontab 简介 crontab 主要用于需要管理周期执行定时任务的场景 crontab 安装 (有些系统默认已经带了 crontab,无需安装的朋友可以直接跳过本节) 安装: yum insta ...
- linux命令之crontab详解
crontab命令: crontab -l : 显示定时任务列表 crontab -e: 编辑定时任务 crontab -r : 删除所有定时任务 基本格式 : * * * * * command ...
- 每天一个linux命令(56)--crontab命令
上一节学习了 at 命令是针对仅运行一次的任务,循环运行的例行性计划任务,Linux 系统则是由 cron(crond)这个系统服务来控制的.Linux 系统上面原本就有非常多的计划性工作,因此这个 ...
- 工作中常用的Linux命令:crontab命令,定时任务执行命令
本文链接:http://www.cnblogs.com/MartinChentf/p/6060252.html (转载请注明出处) crontab是一个用来设置.删除或显示供守护进程cron执行的定时 ...
- Linux应用之crontab定时任务的设置
实现Linux定时任务有:cron.anacron.at等,这里主要介绍cron服务. 名词解释: cron是服务名称,crond是后台进程,crontab则是定制好的计划任务表. 软件包安装: 要使 ...
- linux 下的 crontab 定时任务工具
以下内容转自:https://www.cnblogs.com/longjshz/p/5779215.html 在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep c ...
- Linux命令(003) -- crontab
一.准备知识 Linux下的任务调度分为两类:系统任务调度和用户任务调度. (1).系统任务调度 系统任务调度是系统周期性所要执行的工作,比如写缓存数据到硬盘.日志清理等.在/etc目录下有一个cro ...
随机推荐
- vscode开发微信小程序使用less(插件Easy WXLESS)
1.搜索按照Easy WXLESS 2.在文件中加入下面的一行代码:就会在同级目录下同步代码到.wss // out: index.wxss 更多的写法可以查官网:https://marketplac ...
- 华为mate10 pro内置浏览器出现的令人头疼的样式兼容问题
问题描述: 下图红色框区域内容在华为mate10 pro(以下简称mate10)内置浏览器中整体向左偏移,没有居中,其它手机浏览器都无该问题,如下图 问题分析 经过一番追根溯源,我发现是 bo ...
- Redis for OPS 03:数据安全与持久化
写在前面的话 通过前两节,除了安装部分,其它的更多的是作为了解,除非我们面向实际的开发,当然知道更多总是好的,这样才有吹牛逼的资本. 从本节开始我们主要谈谈作为一个运维,在处理 Redis 的维护的时 ...
- Java生鲜电商平台-你应该保留的一些学习态度与学习方法
Java生鲜电商平台-你应该保留的一些学习态度与学习方法 说明:Java开源生鲜电商平台这一类学习课程系列已经初步接近了尾声,那么作为学习生鲜电商B2B2C电商的你,应该有一个什么样子的学习态度与学习 ...
- cmdb项目-3
1. cmdb资产审计 2.stark组件使用 快速完成网站的一个组件,使用方式与django的admin系统类似 ,仅仅将model注册 ,就可以生成对model增删改查的页面 ,当然这里还包括了模 ...
- SAP MM MB5L事务代码'仅总计'选项初探
SAP MM MB5L事务代码'仅总计'选项初探 MB5L,如下查询条件, 报表结果里显示有差异, 而如下查询条件, 原因在于当勾选了'仅总计'选项以后,系统不考虑MM以外的影响库存金额的事务,而只是 ...
- IDEA设置默认WorkingDirectory
- centos 下创建本地镜像源,结合 nginx
1. 创建同步文件 参考清华的Centos源,配置同步文件.https://mirrors.tuna.tsinghua.edu.cn/help/centos/ [root@localhost cent ...
- redis 进程使用root用户启动 -- 整改方案
最近内部风险整改, 各种进程使用root身份进行启动不符合要求, 于是各路神仙各施其法,为的就是让 某进程不以root 启动: 先以 redis 为例: 原有进程如下: #超一流标准的执行文件位置及配 ...
- __rpm.so: underfined symbol : rpmpkgverifySigs 故障分析
前言: 近期漏洞修复频繁,各种组件需要升级,经多次碰撞,发现 yum update 来升级组件是最有效最安全的方式(绿盟通过版本比对的扫描结果可以忽略). 然而,各家的设备各家管,一到升级就发现一堆问 ...