今天继续给大家介绍Linux基础知识,本文主要内容是Linux定时任务。

一、Linux定时任务简介

计划任务是需要在指定时间执行的任务或者是周期性执行的任务,比如凌晨3点重启设备,每周对日志文件备份等。Linux系统会内置at和cron服务,at服务用来在指定时间执行任务,cron用来周期性执行任务。

二、at一次性任务

at定时任务依赖于Linux系统的atd服务,如果atd服务不开启,则at则不起作用,查看atd服务开启命令如下:

systemctl status atd

如果显示如下,则表示atd服务已经开启:

如果没有atd服务,或者是没有at命令,则可能是系统在最小化安装的时候没有装at,此时我们可以yum安装at软甲,命令如下:

yum install -y at

at定时任务相关文件主要有以下2个:
/etc/at.deny
/etc/at.allow
at.deny表明不允许哪个用户执行at服务,at.allow表明允许哪个用户执行at服务。默认情况下,at.deny文件存在而at.allow文件不存在,而当at.deny和at.allow文件同时存在时,at.allow文件则会失效,只有当at.deny文件不存在时,at.allow文件才会生效。
at命令常用参数如下:
-l 表示列出所有的at定时任务
-d 表示删除指定的at定时任务
-c 表示查看指定的at定时任务
-t 表示后面跟字符串化的时间参数
at命令使用实例如下:

at 00:00
at 2:30pm
at now+10min
at now+3days
at 4pm+4days
at 10 Jan 31
at -t 202111111300

上述命令分别表示凌晨0点执行、下午两点半执行、10分钟以后执行、3天以后执行、4天以后的下午四点执行、1月31号的上午(不指名上午还是下午就使用24h)10点执行和2021年11月11日13点执行。
我们在键入上述命令并回车后,就会进入at任务的交互式界面,此时就可以键入我们的定时任务了。在写完以后,ctrl+d表示保存任务并退出,ctrl+c表示不保存退出。
at定时任务编辑如下:

如果定时任务比较长,我们也可以写成脚本,然后使用输入重定向或者-f参数的方式来编辑,如下所示:

如果我们想删除at定时任务,就可以使用-d参数,删除过程如下所示:

三、cron周期性任务

cron周期性任务依赖于系统后台的crond进程,类似于at,我们也要首先确认cron服务是否开启,执行命令:

systemctl status crond

如果出现如下结果,就表示crond任务已经开启。

cron定时任务分为系统的定时任务和用户的定时任务。
crond定时任务主要文件如下:
1、/var/spool/cron/
该文件主要用于存放用户设置的定时任务,会以用户名来命名,当用户创建cron定时任务时,就会在该目录下生成一个同名文件,该文件存储了用户定时任务的具体信息。
2、/etc/cron.deny /etc/cron.allow
与at定时任务类似,cron.allow存放了运行创建定时任务的用户,而cron.deny则存放了不允许创建定时任务的用户,只有当cron.deny不存在时,cron.allow才会生效。
3、/etc/cron.monthly/
该文件用来存放系统每个月需要执行的脚本
4、/etc/cron.weekly/
该文件用来存放系统每周需要执行的脚本
5、/etc/cron.daily/
该文件用来存放系统每天需要执行的脚本
6、/etc/cron.hourly/
该文件用来存放系统每小时需要执行的脚本
执行命令crontab可以使我们创建定时任务,该命令常用参数如下:
-e 表示新创建或编辑定时任务
-r 表示删除定时任务
-l 表示显示定时任务
因此,执行命令:

crontab -e

即可以创建一个定时任务了。
创建定时任务需要遵循一定的规范, 在crond文件中,前面的五列都代表一个时间,从左到右分别是分钟、小时、天、月、星期,如果不做设置,可以用*跳过,最后一列表示要执行的任务。

在每一列对应的地方写入具体数值就可以表示定时执行,还可以使用短杠表示一段时间,如果*后面加入斜杠,则表示没隔该端时间执行一次。
crond定时任务时间设置示例如下:

0 3 * * *

表示每天3点执行

0 */3 * * *

表示每隔3小时执行

0 3 2 * 3

表示每个月2号的3点或者每周三的3点执行

* * * * *

表示每分钟执行一次

* 1-10 * **

表示每天的1点到10执行
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

Linux 定时任务详解相关推荐

  1. Linux定时任务详解

    linux的定时任务crond(crontab)服务 1.crond是什么? crond是linux系统中用来定期执行命令或者指定程序任务的一种服务或软件. 一般在安装完C5/C6系统的时候,cron ...

  2. Linux的定时任务详解

    Linux的定时任务详解 文章目录 一 什么是定时任务? 二 控制定时任务 三 crontab命令 四 实际运用定时任务 五 会遇到的问题及解决方法 5.1 权限问题 5.2 脚本注意问题 一 什么是 ...

  3. navicat创建MySql定时任务详解

    目录 navicat创建MySql 定时任务详解 一.开起定时任务 二.通过navicat创建定时任务 三.关闭.启动.别名.移动.删除event 四.查询Event信息 navicat创建MySql ...

  4. Linux systemctl 详解自定义 systemd unit

    Linux systemctl 详解&自定义 systemd unit systemctl 序 大家都知道,我们安装了很多服务之后,使用 systemctl 来管理这些服务,比如开启.重启.关 ...

  5. 《Linux命令详解手册》——Linux畅销书作家又一力作

    关注IT,更要关心IT人,让系统管理员以及程序员工作得更加轻松和快乐.鉴于此, 图灵公司引进了国外知名出版社John Wiley and Sons出版的Fedora Linux Toolbox: 10 ...

  6. Linux系统详解 系统的启动、登录、注销与开关机

    Linux系统详解 第六篇:系统的启动.登录.注销与开关机 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://johncai.blo ...

  7. 每天一个linux命令(25):linux文件属性详解

    每天一个linux命令(25):linux文件属性详解 Linux 文件或目录的属性主要包括:文件或目录的节点.种类.权限模式.链接数量.所归属的用户和用户组.最近访问或修改的时间等内容.具体情况如下 ...

  8. c linux time微秒_学习linux,看这篇1.5w多字的linux命令详解(6小时讲明白Linux)

    用心分享,共同成长 没有什么比每天进步一点点更重要了 本篇文章主要讲解了一些linux常用命令,主要讲解模式是,命令介绍.命令参数格式.命令参数.命令常用参数示例.由于linux命令较多,我还特意选了 ...

  9. Linux系统结构 详解

    Linux系统结构 详解 标签: 产品产品设计googleapple互联网 2011-01-07 14:14 31038人阅读 评论(6) 收藏 举报 分类: Linux(21) 版权声明:本文为博主 ...

  10. 《嵌入式Linux软硬件开发详解——基于S5PV210处理器》——2.2 DDR2 SDRAM芯片

    本节书摘来自异步社区<嵌入式Linux软硬件开发详解--基于S5PV210处理器>一书中的第2章,第2.2节,作者 刘龙,更多章节内容可以访问云栖社区"异步社区"公众号 ...

最新文章

  1. python读取excel一列-python读取excel(xlrd)
  2. 多线程读取矩阵文件+多线程矩阵乘法(C++实现)
  3. 微信分享时,描述内容怎么换行
  4. Android之如何解决刚下载的Android studio(包括上面的菜单栏)乱码问题
  5. Storm精华问答 | Storm的配置需要注意什么问题?
  6. 9. JEB 1.5插件编写一
  7. 六石管理学:人是不可以被说服的,除非自己想明白
  8. 整篇文章翻译软件对接谷歌等各大翻译平台
  9. Javaweb项目 SMBMS 超市订单管理系统:准备工作、登录与注销、修改密码、用户管理
  10. AngularJS知识概括
  11. Android-黑客技术-实现类似电脑版软件破解版
  12. 用svg矢量图实现动画效果
  13. 弗吉尼亚理工大学计算机科学,美国弗吉尼亚理工大学计算机科学本科.pdf
  14. 九爷带你玩转 oracle
  15. c语言rand函数源码路径,C语言中的rand()函数
  16. (四)Docker网络可视化面板
  17. Rockchip_Developer_Guide_USB_FFS usb测试demo
  18. 饮用水铁离子超标,各种溶液铁离子超标去除工艺
  19. iOS给按钮添加系统声音
  20. 解决在线视频(如b站等)中没有IDM下载浮动条问题

热门文章

  1. 每日算法系列【LeetCode 386】字典序排数
  2. 深入理解成分句法分析中的Dynamic Oracle
  3. 输入一个链表,输出该链表中倒数第k个结点
  4. 温伯格《技术领导之路》——如何弯腰更省力,怎样伸手更合理
  5. c++标准程序库:STL容器之map
  6. oracle10g lsnrctl,Oracle10g 服务丢失处理办法
  7. python 表白程序代码_程序员python表白代码
  8. mysql的cost
  9. Linux防火墙连续多个端口,Linux防火墙iptables配置开放某个端口
  10. L1-1 PTA使我精神焕发 (5 分)