Linux中判断某个Docker容器服务的内存是否超过临界值,比如到达10G,则在凌晨4点执行定时任务执行重新构建命令

监测NAME是blade-jiangxinzhougarden的服务,如果内存(MEM USAGE)超过10G则在凌晨4点执行重新构建命令

在这里插入图片描述

1.编写脚本文件restart_jxz.sh

#!/bin/bash# 设置要监控的容器名称或服务名称(替换成你的服务名)
SERVICE_NAME="blade-jiangxinzhougarden"# 获取服务的内存使用情况,这里假设服务对应的容器名称为 $SERVICE_NAME
MEMORY_USAGE=$(docker stats --no-stream --format "{{.MemUsage}}" $SERVICE_NAME | sed 's/[^0-9]*//g')# 将内存使用量转换为 GB
MEMORY_GB=$(echo "scale=2; $MEMORY_USAGE / 1024 / 1024 / 1024" | bc)# 设置内存阈值 不超过10G
CRITICAL_MEMORY=10# 判断内存使用是否超过阈值
if (( $(echo "$MEMORY_GB > $CRITICAL_MEMORY" | bc -l) )); thenecho "内存使用超过临界值,当前内存使用量为: ${MEMORY_GB}GB"echo "执行重启命令..."# 在这里添加重启服务的命令,比如 Docker 容器重启命令# 重启服务的命令docker rm -f blade-jiangxinzhougarden# 延迟15秒sleep 15docker rmi yutu/blade-jiangxinzhougarden:2.8.2# 延迟15秒sleep 15docker-compose up -d blade-jiangxinzhougarden# 等待服务启动echo "等待服务启动..."#  以下是判断服务器是否已经成功启动的while循环代码# (注意:如果你没有需求则可以把以下的while代码删除)#  避免出现意外导致服务启动不起来,处于死循环状态#  一旦出现死循环就会给服务器资源造成负担while true; do# 判断服务器是否已经成功启动if docker ps | grep blade-jiangxinzhougarden; thenecho "服务已启动,继续后续操作"# 跳出while循环breakelseecho "服务尚未完全启动,继续等待..."sleep 10fidoneelseecho "内存使用正常,当前内存使用量为: ${MEMORY_GB}GB"
fi

2.授予执行权限

确保脚本文件有执行权限,可以在终端通过运行 chmod +x monitor_script.sh 给予执行权限。

chmod +x restart_jxz.sh

或者直接给予777权限,这个命令将会设置指定的文件为所有用户可读、可写、可执行。尽量避免过度赋予文件权限,因为这可能会造成安全风险。

chmod 777 restart_jxz.sh

3.配置定时任务

在终端执行crontab -e命令进入配置定时任务命令

crontab -e

进入后按下键盘的Ins键进入编辑模式,把以下内容复制进去即可在凌晨4点执行。

0 4 * * * /home/data/srv/restart_jxz.sh >> /home/data/srv/restart_jxz.log 2>&1

请替换 /home/data/srv/restart_jxz.sh 为实际脚本文件的路径,将脚本执行结果输出到指定的日志文件
/home/data/srv/restart_jxz.log 中。

在这里插入图片描述

编辑完成后按下键盘的Esc键,再按下Shift+;组合键,出现冒号后输入wq回车即可保存退出。

也记得给日志文件授予写入的权限

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

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

相关文章

科研学习|论文解读——指导关键词组提取的局部词向量

原文标题 Local word vectors guiding keyphrase extraction 摘要 自动关键词组提取是一项基本的文本信息处理任务,涉及到从文件中选择具有代表性的短语来概括其内容。这项工作提出了一种新的无监督的关键词组提取方法,其主要创新点是使用局部词嵌入(特别…

一款前端开发工具Hbuilder

背景:最近日在接触前同事留下的一个VUE项目(只有前端代码,后台服务压根没写真不知道以前是怎么糊弄过去的)时,发现一款可以快速开发前端的软件;今日分享一下。 当我打开项目时发现,有个app.vue…

Python 界面逻辑分离示例

本示例使用的发卡设备:https://item.taobao.com/item.htm?id615391857885&spma1z10.5-c.w4002-21818769070.11.6cc85700Robi3x 一、Python 安装PyQt5,运行 Qt Designer 新建窗体文件,在窗体中拖放控件 完成界面设计,保存为…

沙漠邮局x林氏家居,见证极致品质无惧极端环境

在北纬38.5N,东经105E的腾格里沙漠腹地,有一座全世界最孤独的邮局——沙漠邮局。它是中国邮政旗下特色邮局之一,更是全球唯一一座以沙漠为元素的主题邮局。沙漠邮局虽身处沙漠极端环境,但始终如一履行职责,用信件传递温暖,用孤独治愈孤独。 然而,随着岁月流逝,沙漠的极端环境对…

word文档注音小技巧:word注音怎样才能只留拼音不要声调 注音的魅力:只有拼音,无需声调

汉字,作为中华民族几千年的文化瑰宝,其独特的构造和深厚的内涵吸引了无数的学者和爱好者。而在汉字的发音上,我们长期以来依赖于声调来准确表达每个字的意义。但近年来,一种新型的汉字注音方式逐渐崭露头角,那就是“注…

C#,蛇梯问题(Snake and Ladder Problem)的算法与源代码

1 蛇梯问题 Snake and Ladder Problem 给定一个蛇梯板,找出从源单元格或第一个单元格到达目标单元格或最后一个单元格所需的最小掷骰次数。基本上,玩家可以完全控制掷骰子的结果,并希望找出到达最后一个单元格所需的最小掷骰次数。 如果玩家到达的牢房是梯子的底部,玩家…

linux升级gcc版本详细教程

0.前言 一般linux操作系统默认的gcc版本都比较低,例如centos7系统默认的gcc版本为4.8.5。gcc是从4.7版本开始支持C11的,4.8版本对C11新特性的编译支持还不够完善,因此如果需要更好的体验C11以及以上版本的新特性,需要升级gcc到一个…

Tensorflow笔记(二):常用函数2、激活函数、优化器等、神经网络模型实现(商品销量预测)

import tensorflow as tf import numpy as np from tqdm import tqdm# ----------------------------- tensor常用函数2 ----------------------------------- a tf.constant([1, 2, 3, 1, 2]) b tf.constant([0, 1, 3, 4, 5]) c tf.where(tf.greater(a, b), a, b) # 若a&g…

采购代购系统独立站,接口采集商品上货

采购代购系统独立站的建设与商品上货接口的采集是一个综合性的项目,涉及前端开发、后端开发、数据库设计以及API接口的对接等多个环节。以下是一个大致的步骤和考虑因素: 一、系统规划与需求分析 明确业务需求:确定代购系统的核心功能&…

尚硅谷SpringBoot项目--微头条实战(有完整项目代码)

目录 项目模块 技术栈 功能展示 环境搭建 前端环境搭建: 后端环境搭建: 数据库创建: (建议使用数据库软件操作) springboot项目搭建: mybatis-plus逆向工程 后端功能开发 用户模块开发 jwt 与…

基于SpringBoot的“实验室管理系统”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“实验室管理系统”的设计与实现(源码数据库文档PPT) 开发语言:Java 数据库:MySQL 技术:SpringBoot 工具:IDEA/Ecilpse、Navicat、Maven 系统展示 登录界面 注册界面 实验室界面 设备界面图 消耗…

使用Python批量实现在Excel里新加一列

目录 一、引言 二、所需库介绍 三、代码实现 四、批量处理多个Excel文件 五、注意事项与扩展 六、案例演示 七、总结与展望 一、引言 Excel作为广泛使用的电子表格软件,在数据处理和分析中扮演着重要角色。然而,当面对大量Excel文件需要批量处理…