在Linux中使用at和crontab命令在指定时间计划任务服务程序

news2025/1/13 7:45:07

经验丰富的系统运维工程师可以使得Linux在无需人为介入的情况下,在指定的时间段自动启用或停止某些服务或命令,从而实现运维的自动化。尽管我们现在已经有了功能彪悍的脚本程序来执行一些批处理工作,但是,如果仍然需要在每天凌晨两点敲击键盘回车键来执行这个脚本程序,这简直太痛苦了(当然,也可以训练您的小猫在半夜按下回车键)。接下来,将向大家讲解如何设置服务器的计划任务服务,把周期性、规律性的工作交给系统自动完成。


计划任务分为一次性计划任务与长期性计划任务,大家可以按照如下方式理解。

一次性计划任务:今晚11点30分开启网站服务。

长期性计划任务:每周一的凌晨3点25分把/home/wwwroot目录打包备份为backup.tar.gz。

顾名思义,一次性计划任务只执行一次,一般用于满足临时的工作需求。我们可以用at命令实现这种功能,只需要写成“at 时间”的形式就可以。如果想要查看已设置好但还未执行的一次性计划任务,可以使用“at -l”命令;要想将其删除,可以用“atrm 任务序号”。在使用at命令来设置一次性计划任务时,默认采用的是交互式方法。例如,使用下述命令将系统设置为在今晚23:30分自动重启网站服务。

[root@liangxu ~]# at 23:30at > systemctl restart httpdat > 此处请同时按下Ctrl+d来结束编写计划任务job 3 at Mon Apr 27 23:30:00 2015[root@liangxu ~]# at -l3 Mon Apr 27 23:30:00 2016 a root

如果想挑战一下难度更大但简捷性更高的方式,可以把管道符(任意门)放到两条命令之间,让at命令接收前面echo命令的输出信息,以达到通过非交互式的方式创建计划一次性任务的目的。

[root@liangxu ~]# echo "systemctl restart httpd" | at 23:30job 4 at Mon Apr 27 23:30:00 2015[root@liangxu ~]# at -l3 Mon Apr 27 23:30:00 2016 a root4 Mon Apr 27 23:30:00 2016 a root

如果我们不小心设置了两个一次性计划任务,可以使用下面的命令轻松删除其中一个:

[root@liangxu ~]# atrm 3[root@liangxu ~]# at -l4 Mon Apr 27 23:30:00 2016 a root

如果我们希望Linux能够周期性地、有规律地执行某些具体的任务,那么Linux中默认启用的crond服务简直再适合不过了。创建、编辑计划任务的命令为“crontab -e”,查看当前计划任务的命令为“crontab -l”,删除某条计划任务的命令为“crontab -r”。另外,如果您是以管理员的身份登录的系统,还可以在crontab命令中加上-u参数来编辑他人的计划任务。

在正式部署计划任务前,请先念一下口诀“分、时、日、月、星期 命令”。这是使用crond服务设置任务的参数格式。需要注意的是,如果有些字段没有设置,则需要使用星号(*****)占位。

使用crond设置任务的参数格式

使用crond设置任务的参数字段说明

字段说明
分钟取值为0~59的整数
小时取值为0~23的任意整数
日期取值为1~31的任意整数
月份取值为1~12的任意整数
星期取值为0~7的任意整数,其中0与7均为星期日
命令要执行的命令或程序脚本

假设在每周一、三、五的凌晨3点25分,都需要使用tar命令把某个网站的数据目录进行打包处理,使其作为一个备份文件。我们可以使用crontab -e命令来创建计划任务。为自己创建计划任务无需使用-u参数,具体的实现效果的参数如crontab -l命令结果所示:

[root@liangxu ~]# crontab -eno crontab for root - using an empty onecrontab: installing new crontab[root@liangxu ~]# crontab -l25 3 * * 1,3,5 /usr/bin/tar -czvf backup.tar.gz /home/wwwroot

需要说明的是,除了用逗号(,)来分别表示多个时间段,例如“8,9,12”表示8月、9月和12月。还可以用减号(-)来表示一段连续的时间周期(例如字段“日”的取值为“12-15”,则表示每月的12~15日)。以及用除号(/)表示执行任务的间隔时间(例如“*/2”表示每隔2分钟执行一次任务)。

如果在crond服务中需要同时包含多条计划任务的命令语句,应每行仅写一条。例如我们再添加一条计划任务,它的功能是每周一至周五的凌晨1点钟自动清空/tmp目录内的所有文件。尤其需要注意的是,在crond服务的计划任务参数中,所有命令一定要用绝对路径的方式来写,如果不知道绝对路径,请用whereis命令进行查询,rm命令路径为下面输出信息中加粗部分。

[root@liangxu ~]# whereis rmrm: /usr/bin/rm /usr/share/man/man1/rm.1.gz /usr/share/man/man1p/rm.1p.gz[root@liangxu ~]# crontab -ecrontab: installing new crontab[root@liangxu ~]# crontab -l25 3 * * 1,3,5 /usr/bin/tar -czvf backup.tar.gz /home/wwwroot0 1 * * 1-5 /usr/bin/rm -rf /tmp/*

总结

最后,再来啰嗦几句在工作中使用计划服务的注意事项。

在crond服务的配置参数中,可以像Shell脚本那样以#号开头写上注释信息,这样在日后回顾这段命令代码时可以快速了解其功能、需求以及编写人员等重要信息。

计划任务中的“分”字段必须有数值,绝对不能为空或是*号,而“日”和“星期”字段不能同时使用,否则就会发生冲突。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/94345.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023年电气,电子与信息工程国际会议(ISEEIE 2023)

2023年电气,电子与信息工程国际会议(ISEEIE 2023) 重要信息 会议网址:www.iseeie.org 会议时间:2023年2月24-26日 召开地点:新加坡 截稿时间:2022年12月31日 录用通知:投稿后2周…

Mac如何做才能彻底清理垃圾

Mac磁盘空间又爆满了?系统运行又卡了?你的Mac需要清理内存缓存垃圾啦!本文教会你如何彻底清除Mac垃圾文件,释放存储空间。 现在,Mac电脑最顶配的硬盘可达2TB。这么大的容量,应该够用了吧?可真正…

windowsserver2016安装

vmware安装windowsserver2016: 开始安装OpcServer服务器端: DOM配置过程: 1.设置OpcServer和OpcClient相同的administrator账号和密码 administrator、wong123 2.关闭OpcServer和OpcClient的防火墙 3.开启OpcServer和OpcClient远程桌面访问 4.OpcServe…

玩以太坊链上项目的必备技能(OOP-合约继承-Solidity之旅九)

继承 我们今天不讲别的,就只讲合约继承相关的内容。(您是不是感觉这话挺眼熟的,没错,您确实看过,前一篇开头便是今天我们不讲三国,来讲讲 流程控制,您会觉得我上头了还是怎么!&…

Java-数据库范式与表关系

数据库范式 数据库范式简介 什么是范式(NF NormalForm) ● 范式是符合某一种设计要求的总结 在数据库中表的设计,必须保证其合理性 ● 数据库表的设计关系整个系统的架构,关系到后续的开发效率和运行效率 如何设计合理的数据库…

【leetcode】二叉树的最近公共祖先

一、题目描述 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也…

在职位招聘数据处理中使用Loess回归曲线以及分箱、回归、聚类方法 检查离群点及光滑数据【数据挖掘机器学习】

文章目录一.需求分析二.使用局部回归(Loess)曲线(增加一条光滑曲线到散布图)方法处理数据三.使用分箱、回归、聚类方法 检查离群点及光滑数据;一.需求分析 本文主题:使用局部回归(Loess&#x…

Jmeter(十九):nmon性能系统监控工具

一、Nmon介绍 Nmon得名于 Nigel 的监控器,是IBM的员工 Nigel Griffiths 为 AIX 和 Linux 系统开发的,使用 Nmon 可以很轻松的监控系统的CPU、内存、网络、硬盘、文件系统、NFS、高耗进程、资源和 IBM Power 系统的微分区的信息 Nmon是一款计算机性能系…

【JavaEE】HTTP + HTTPS(Part2 )

努力经营当下,直至未来明朗! 文章目录【HTTP响应详解】1. 认识状态码2.认识响应“报头”header3.认识响应“正文”body【通过 Java socket 构造 HTTP 请求】三、HTTPS四、Tomcat:http服务器THINK一个人最大的痛苦来源于对自己无能的愤怒。 【…

Pycharm SQL 警告:SQL dialect is not configured.

Pycharm SQL 警告:SQL dialect is not configured. 文章目录Pycharm SQL 警告:SQL dialect is not configured.Unable to resolve symbol XXX在我们编写python代码的时候,不免会在代码里面写入自己写的sql语句,因为很少有orm框架能…

JVM Java内存模型(JMM)

很多人将Java内存结构与Java内存模型傻傻分不清,Java内存模型是Java memory model(JMM)的意思。简单地说,JMM定义了一套在多线程的环境下读写共享数据(比如成员变量、数组)时,对数据的可见性、有…

浪潮开务数据库陈磊:布局数字能源,创新助力 “双碳”

​当前,碳中和、碳达峰无疑是国际社会最关注的热点之一。2021 年两会上,我国提出:二氧化碳排放力争于 2030 年前达到峰值,努力争取 2060 年前实现碳中和。“双碳” 目标的提出将推动产业转型升级,提高经济增长质量&…

【LeetCode题目详解】(二)206.反转链表、876.链表的中间结点

目录 一、力扣第206题:反转链表 1.思路一 2.思路二 二、力扣第876题:链表的中间结点 1.思路一 2.思路二 总结 一、力扣第206题:反转链表 题目链接:206. 反转链表 - 力扣(Leetcode) 题目描述&#xff1…

gitee学习笔记(使用命令行上传、拉取资料)

1、创建一个仓库(比如命名为firstgit) 2、在文件夹中准备好要上传的资料 3、单击鼠标右键,打开Git Bash Here 进行命令行操作(当然,前提是需要安装git客户端,可去官网安装) 4、上传文件 ①git init //文件初始…

【mybatis-plus】自定义多数据源,动态切换数据源事务失效问题

背景 做了一个和navicat一样的工具,web版工具,然后数据库链接信息都是存在一个主数据库表的里,所以这里涉及到了动态切换数据源,以及一些事务等。今天说下多数据源切换时,事务失效。 目录 一、常见的事务失效 Transac…

大数据必学Java基础(一百一十二):开发案例之登录验证

文章目录 开发案例之登录验证 一、准备实体类 二、准备一些页面和静态资源

Spring boot day1

Maven 进阶 spring boot 框架 spring boot 相比于SSM框架的优缺点 优点: 创建独立的sping应用程序内嵌的tomcat,无需部署war文件简化的maven配置自动配置spring提供生产就绪型功能,如指标,健康检查和外部配置 特性:…

3.1 卷积神经网络基础

文章目录计算机视觉的发展历程卷积神经网络卷积(Convolution)卷积计算填充(padding)步幅(stride)感受野(Receptive Field)多输入通道、多输出通道和批量操作飞桨卷积API介绍卷积算子…

碰焊机触摸屏软件开发

1 软件需求 人机界面为MCGS 10寸触摸屏1062KW,接口为RS232/RS484/以太网,供电电源为24V。机触摸屏的功能为机器人的基本状态信息显示和对机器人的控制及参数给定。 目前设计的小车分成两栏共10格,需要将对应的触摸屏大致分成相应的10大格&a…

【嵌入式】AI落地部署技能

针对不同平台对生成的模型进行转换,也就是俗称的parse、convert,即前端解释器针对转化后的模型进行优化在特定的平台(嵌入端或者服务端)成功运行已经转化好的模型在模型可以运行的基础上,保证模型的速度、精度和稳定性用C、cuda写算子(预处理…