CentOS7 - Linux的定时启动任务,以及定时重启tomcat详解

news/2024/4/24 9:11:34/文章来源:https://blog.csdn.net/qq_51741292/article/details/130053636

一、crontab使用

1.安装crontab

一般 CentOS 会默认安装了 crontab,执行下面命令,查看是否安装:

rpm -qa | grep crontab

如果查询结果类似于下面,说明已安装:

crontabs-1.11-6.20121102git.el7.noarch

如果结果为空,说明没有安装,执行下面命令进行安装即可:

yum install -y crontabs

2.crontab常用命令

查看 crontab 运行状态:

systemctl status crond

设置 crontab 开机自启:

systemctl enable crond

启动 crontab

systemctl start crond

查看当前用户的定时任务:

crontab -l//查看root用户的crontab任务
crontab -u root -l

编辑当前用户的定时任务:

crontab -e

CentOS7上的cron命令

systemctl start crond.service  //启动服务
systemctl stop crond.service  //关闭服务
systemctl restart crond.service  //重启服务
systemctl reload crond.service  //重新载入配置
systemctl status crond.service   //查看状态

注意!!第一次使用crontab时会报以下错误:


crontab: "/usr/bin/vi" exited with status 1

原因是vi编辑器的问题,比较简单的解决办法是直接执行

EDITOR=vim crontab -e

然后按i插入数据,保存退出即可,下次编辑直接用

crontab -e

二、设置定时任务

这里我们以定时重启tomcat为例。

在 root 目录下创建一个 restarttomcat 文件夹:注意!!必须在root目录下创建,因为启动crontab是,它会去读取root目录下的定时任务

mkdir -p /root/restarttomcat

然后在 restarttomcat 文件夹 下创建一个脚本 cqtomcat.sh

vim /root/restarttomcat/cqtomcat.sh

按 i 进入编辑状态,粘贴下面内容:

#!/bin/bash
tomcatPath=/opt/module/apache-tomcat-9.0.67
binPath="$tomcatPath/bin"
echo "[info][$(date +'%F %H:%M:%S')]正在监控tomcat,路径:$tomcatPath"
echo "[info][$(date +'%F %H:%M:%S')]正在监控tomcat,路径:$tomcatPath bin路径:$binPath"
pid=`ps aux | grep "/opt/module/apache-tomcat-9.0.67/bin" | grep -v grep | grep -v retomcat | awk '{print $2}'`
echo "[info][$(date +'%F %H:%M:%S')]tomcat进程为:$pid"
if [ -n "$pid" ]; thenecho "[info][$(date +'%F %H:%M:%S')]tomcat进程为:$pid"echo "[info][$(date +'%F %H:%M:%S')]tomcat已经启动,准备使用shutdown命令关闭..."$binPath"/shutdown.sh"sleep 2pid=`ps aux | grep "/opt/module/apache-tomcat-9.0.67/bin" | grep -v grep | grep -v retomcat | awk '{print $2}'`echo "[info][$(date +'%F %H:%M:%S')]tomcat进程为:$pid"if [ -n "$pid" ]; thenecho "[info][$(date +'%F %H:%M:%S')]使用shutdown命令关闭失败,准备kill进程..."kill -9 $pidecho "[info][$(date +'%F %H:%M:%S')]kill进程完毕!"sleep 1elseecho "[info][$(date +'%F %H:%M:%S')]使用shutdown命令关闭成功!"fi
elseecho "[info][$(date +'%F %H:%M:%S')]tomcat未启动!"
fi
echo "[info][$(date +'%F %H:%M:%S')]准备启动tomcat..."
$binPath"/startup.sh"

按 Esc 键,再输入 :wq 保存文件。

注意!!一定要赋予文件权限

要进入到文件所在文件夹,才能使用该命令进行赋权:cd /opt/module/apache-tomcat-9.0.67/bin

chmod 777 cqtomcat.shchmod 777 shutdown.sh

执行下面命令即可编辑当前用户的定时任务:

crontab -e

每天凌晨2:00重启一次tomcat,那么可以按下 i 进入编辑状态,粘贴下面内容:

00 02 * * *  bash /root/restarttomcat/cqtomcat.sh

该语句其实是写在/var/spool/cron/root文件下的

然后通过 crontab -l 可查看到已保存的定时任务:

00 02 * * *  bash /root/restarttomcat/cqtomcat.sh

crontab不执行原因

  • 检查 crontab 服务是否正常
  • 检查脚本路径是否绝对路径
  • 检查脚本路径前是否添加了 bash 或 /etc/profile;/bin/sh

如果以上都没问题,那就要通过日志查找问题所在了。

三、*定时任务描述语法

crontab中每一个定时任务的格式由6部分组成,分别是分钟、小时、天、月、星期以及命令,前5部分用来配置任务触发时机,中间使用空格隔开,如下:

minute hour day month dayofweek command

minute – 表示分钟,值的范围是从0到59的整数
hour – 表示小时,值的范围是从0到23的整数
day – 表示天,值的范围是从1到31的整数
month – 表示月,值的范围是从1到12的整数
dayofweek – 表示星期,值的范围是从0到6的整数 (0表示周日)
command – 需要执行的命令(shell命令路径 >> 打印日志路径 表示执行tomcat.sh脚本,并且把结果日志打印到shlo.txt中)
时间部分除了使用估计数字以外还可以配合星号(*),逗号(,),斜杠(/),横杠(-)组合来表示其他意义。

1. 星号(*)

表示任意值,比如:30 01 * * * command #每天的1:30执行命令


2. 逗号(,)

表示指定的时间,比如:30 01 1,10,20 * * command #每月的1号、10号、20号的1:30分执行命令


3. 斜杠(/)

表示每隔多长时间,比如:* */2 * * * command #每个2小时执行一次命令


4. 横杠(-)

表示连续时间,比如:* 1-7/1 * * * command #凌晨1点-7点之前每隔一小时执行一次命令


四、crontab日志所在地

定时任务无论执行是否成功,都会往/var/spool/mail/root文件里发一份报错日志。

其余的日志则都会在/var/log/cron给出

五、可能会出现的报错

1.如果查看/var/spool/mail/root有以下报错

Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
At least one of these environment variable is needed to run this program

则解决方案是;

在cqtomat.sh文件里,加上export JAVA_HOME=/opt/module/jdk1.8.0_301export JRE_HOME=$JAVA_HOME/jre

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Graph Transformer系列论文阅读

文章目录research1.《Do Transformers Really Perform Bad for Graph Representation》【NeurIPS 2021 Poster】2.《Relational Attention: Generalizing Transformers for Graph-Structured Tasks》【ICLR2023-spotlight】survey推荐一个汇总Graph Transformer论文的项目&…

2023年4月的12篇AI论文推荐

GPT-4发布仅仅三周后,就已经随处可见了。本月的论文推荐除了GPT-4以外还包括、语言模型的应用、扩散模型、计算机视觉、视频生成、推荐系统和神经辐射场。 1、GPT-4 Technical Report Sbastien Bubeck, Varun Chandrasekaran, Ronen Eldan, Johannes Gehrke, Eric…

【2023 年第十三届 MathorCup 高校数学建模挑战赛】A 题 量子计算机在信用评分卡组合优化中的应用 详细建模过程解析及代码实现

【2023 年第十三届 MathorCup 高校数学建模挑战赛】A 题 量子计算机在信用评分卡组合优化中的应用 1 题目 在银行信用卡或相关的贷款等业务中,对客户授信之前,需要先通过 各种审核规则对客户的信用等级进行评定,通过评定后的客户才能获得信 …

【Ubuntu安装选项】

关于Ubuntu系统安装选项 [TOC](关于Ubuntu系统安装选项) 安装选项选择 一、*Try or Install Ubuntu 二、Ubunru (safe graphics) 三、OEM install (for manufacturers) 四、Test memory 总结 安装选项选择 在安装Ubuntu系统时会有四个选项,搜…

( “树” 之 DFS) 226. 翻转二叉树 ——【Leetcode每日一题】

226. 翻转二叉树 给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。 示例 1: 输入:root [4,2,7,1,3,6,9] 输出:[4,7,2,9,6,3,1] 示例 2: 输入:root [2,1,3] 输出:[…

[ 应急响应基础篇 ] 使用 Autoruns 启动项分析工具分析启动项(附Autoruns安装教程)

🍬 博主介绍 👨‍🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~ ✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 🎉点赞➕评论➕收藏 养成习…

[PTA] 插松枝(C++,模拟)

人造松枝加工场的工人需要将各种尺寸的塑料松针插到松枝干上,做成大大小小的松枝。他们的工作流程(并不)是这样的: 每人手边有一只小盒子,初始状态为空。每人面前有用不完的松枝干和一个推送器,每次推送一…

【软考数据库】第一章 计算机系统基础知识

目录 1.1 计算机系统 1.1.1 计算机硬件组成 1.1.2 中央处理单元 1.1.3 数据表示 1.1.4 校验码 1.2 计算机体系结构 1.2.1 体系结构分类 1.2.2 指令系统存 1.2.3 储系系统 1.2.4 输入/输出技术 1.2.5 总线结构…

CF204A-Little Elephant and Interval(数位)

CF204A-Little Elephant and Interval 考虑 [1,abcde‾][1,\overline{abcde}][1,abcde] 的情况: 位置集合数量个位1 ~ 99十位11 ~ 999百位{xux‾∣x∈[1,9],u∈[0,9]}\{\overline{xux} | x\in [1,9],u\in [0,9]\}{xux∣x∈[1,9],u∈[0,9]}91019\times 10^19101千位…

一站式智慧仓储物流方案,免费帮你一屏搞定,领导不重用你都难!

在江苏无锡,菜鸟已经通过柔性自动化技术搭建了亚洲规模最大的无人仓,超过1000台无人车可以快速组合、分拆作业,生产效率可提升一倍多,大大节省了人工成本。智慧仓储物流作为物流的重要一环,也吸引了广泛关注。2022年双…

【图数据挖掘】— 子图同构问题、单射函数和双射函数、同构(isomorphic)和同态(homomorphism)

子图同构问题 子图同构(Subgraph Isomorphism)是指在图论中,两个图之间是否存在一种关系,使得其中一个图的顶点集合和边集合可以通过对应的方式映射到另一个图的顶点集合和边集合上,且保持原来的边和顶点的关系不变。…

设计模式之中介者模式(C++)

作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 一、中介者模式是什么? 中介者模式是一种行为型的软件设计模式,也称为仲裁者模式,顾名思义&am…

基于SpringBoot的大学生体质测试管理系统源码数据库论文

目录 目录 1 绪 论 1.1系统背景介绍 1.2课题研究的目的和意义 1.3系统的研究现状 1.4系统实现的功能 1.5系统的特点 2 开发工具和技术 2.1 B/S体系结构 2.2 Java语言简介 2.3 SpringBoot框架 2.4 MySQL简介 3 系统需求分析 3.1 系统可行性分析及目的…

爱智EdgerOS之深入解析在爱智应用中如何使用Socket.IO轻松实现双向通信

一、什么是 Socket.IO? Socket.IO 是一个基于事件通信的实时应用程序框架,它在即时通讯、通知和消息推送,实时分析等场景中有广泛的应用。Socket.IO 包括两个部分: 在 Server 端的模块(JSRE 已提供了 socket.io 模块&…

UPA/URA双极化天线的协方差矩阵结构

文章目录UPA的阵列响应向量(暂不考虑双极化天线)UPA阵列响应:从单极化天线到双极化天线UPA双极化天线的协方差矩阵结构参考文献UPA的阵列响应向量(暂不考虑双极化天线) 下图形象描述了UPA阵列的接收信号 UPA阵列的水平…

已知原根多项式和寄存器初始值时求LFSR的简单例子

线性反馈移位寄存器(LFSR)是一种用于生成伪随机数序列的简单结构。在这里,我们有一个四项原根多项式 p(x)1x0x21102p(x) 1 x 0x^2 110_2p(x)1x0x21102​ 和初始值 S0100S_0 100S0​100。我们将使用 LFSR 动作过程来生成一个伪随机序列。…

SpringBoot【运维实用篇】---- SpringBoot程序的打包与运行

SpringBoot【运维实用篇】---- SpringBoot程序的打包与运行程序打包程序运行SpringBoot程序打包失败处理命令行启动常见问题及解决方案刚开始做开发学习的小伙伴可能在有一个知识上面有错误的认知,我们天天写程序是在Idea下写的,运行也是在Idea下运行的。…

vue——项目中加载public中的静态资源——技能提升

应用场景 在写后台管理系统的时候,遇到一个需求就是关于热力图的功能,需要加载不同的页面,这个页面需要每日更新一次,所以请求页面html的最终解决办法就是:将页面html对应的文件夹,放在public文件夹中&…

Zephyr RTOS应用开发(nrf5340)

目录 概述 开发环境安装 创建一个新的Zephyr应用 构建应用并刷写到开发板 概述 Zephyr™项目是一个采用Apache 2.0协议许可,Linux基金会托管的协作项目。针对低功耗、小型内存微处理器设备开发的物联网嵌入式小型、可扩展的实时操作系统,支持多种硬件…

(八)【软件设计师】计算机系统—浮点数

浮点数 浮点数。当机器字长为n时,定点数的补码和移码可表示2的n方个数,而其原码和反码只能表示2"-1个数(0的表示占用了两个编码),因此,定点数所能表示的数值范围比较小,在运算中很容易因结果超出范围而…