生产环境shell脚本监控

生产环境shell使用经典案例 #!/bin/bash #针对不同系统,命令不同路径的解决方法 date_com=`/usr/bin/which date` #ifconfig_com=`/usr/bin/which ifconfig` #获取主机名 system_hostname=$(hostname | awk '{print $1}') #过滤lo网卡,但由于某些机器有docker服务,装有docker0的网卡,所以必须过滤docker0网卡的指定IP才行(如其他环境也有也需grep -v单独过滤才可用此脚本)并过滤出IP,再筛选 阅读详情

最近有个需求:定时检测某个目录下的文件个数是否超过n个,若超过则清理日期较早的m-1个文件;由于第一个文件可能被有些进程占用,因此删除日期较早的前m个除去最早的一个。

具体的shell脚本如下:

############################
# author : lijd
# date   :  2021-04-20
############################

#!/bin/bash

main()
{
	while [ 1 ]
	do
		datapath=$(date +%Y)"/"$(date +%m)"/"$(date +%d)"/"
		filepath="/data/sp"$datapath
		file_num=`ls "/data/sp"$datapath -l | grep ".dq" | wc -l`
		
		if [ $file_num -gt 15 ]
		then
			cd $filepath && ls -ltr | grep  ".dq" | awk '{print $9}' | head -n 10 | tail -n 9 | xargs rm -rf
		fi
		
		sleep 60
	done
}

main

主要执行语句:ls -ltr | grep  ".dq" | awk '{print $9}' | head -n 10 | tail -n 9 | xargs rm -rf

定时检测某个进程是否存在,不存在启动。具体的shell脚本如下:

############################
# author : lijd
# date   :  2021-04-20
############################

#!/bin/bash

main()
{
	while [ 1 ]
	do
		process_num=`ps aux | grep hqccgsvc | grep -v grep |wc -l`
		if [ $process_num -eq 0 ]
		then
			cd /root/ccg_cvi/ccg/ && ./hqccgsvc -start
			
			nowtime=`date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"`
			echo $nowtime hqccgsvc segfault >> /root/ccg_cvi/cvi_ccg_monitor.log
		fi
		
		sleep 60
	done
}

main

部分数据文件可能导致进程读取崩溃,删除异常的数据文件然后重启进程。具体的shell脚本如下: 

############################
# author : lijd
# date   :  2021-04-20
############################
#!/bin/bash

BakErrFile()
{
    datapath=$(date +%Y)"/"$(date +%m)"/"$(date +%d)"/"
    filepath="/data/sp"$datapath
    file_num=`ls "/data/sp"$datapath -l | grep ".dq" | wc -l`
	
    if [ $file_num -gt 5 ]
    then
	cd $filepath && ls -ltr | grep  ".dq" | awk '{print $9}' | head -n 1 | xargs -t -i mv {} {}.bak
    fi
}

main()
{
    while [ 1 ]
    do
	process_ccg_num=`ps aux | grep hqccgsvc | grep -v grep |wc -l`
	if [ $process_ccg_num -eq 0 ]
	then
	    cd /root/ccg_cvi/ccg/ && ./hqccgsvc -start
			
	    nowtime=`date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"`
	    echo $nowtime hqccgsvc segfault >> /root/ccg_cvi/cvi_ccg_monitor.log
        fi
		
	process_sp_num=`ps aux | grep spsvc_analyze | grep -v grep |wc -l`
	if [ $process_sp_num -eq 0 ]
	then
	    cd /root/ccg_cvi/spanalyze/ && ./spsvc_analyze -start
			
	    nowtime=`date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"`
	    echo $nowtime spsvc_analyze segfault >> /root/ccg_cvi/cvi_ccg_monitor.log
	fi
		
	process_spa_num=`ps aux | grep spasvc_analyze | grep -v grep |wc -l`
	if [ $process_spa_num -eq 0 ]
	then
	    BakErrFile
	    cd /root/ccg_cvi/spanalyze/ && ./spasvc_analyze -start
			
	    nowtime=`date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"`
	    echo $nowtime spasvc_analyze segfault >> /root/ccg_cvi/cvi_ccg_monitor.log
	fi
		
	sleep 60
    done
}

main

主要执行语句:ls -ltr | grep  ".dq" | awk '{print $9}' | head -n 1 | xargs -t -i mv {} {}.bak

检查当天对应的文件夹是否存在,如果存在并检查其最新修改时间,如果条件不满足则重启系统。具体的shell脚本如下: 

############################
# author : lijd
# date   :  2024-10-30
############################
#!/bin/bash

main()
{
	systemstarttime=`date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"`
	echo "$systemstarttime info : adasMonitor start ~~~" >> /usr/local/adasMonitor.log
	while [ 1 ]; do
		# 获取当前时间
		nowtime=`date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"`
		
		# 获取系统启动时间的时间戳(单位:秒)
		systemuptime=$(printf "%.0f" $(cat /proc/uptime | cut -d" " -f1))
				
		# 获取adas附件服务连接数
		adas_connect_num=`netstat -anp| grep 10011 | grep ESTABLISHED| wc -l`
		
		# 如果系统重启时间超过1天且ADAS连接数超过1才能进入监控
		if [ $systemuptime -gt 86400 ] && [ $adas_connect_num -gt 1 ]; then
		
			datapath=$(date +%Y)"/"$(date +%m)"/"$(date +%d)"/"
			filepath="/data/media/"$datapath
			echo "$nowtime info : filepath : $filepath" >> /usr/local/adasMonitor.log
			
			# 获取当前时间
			current_time=$(date +%s)
			
			if [ -d "$filepath" ]; then
				# 获取文件夹最后修改时间
				last_modified=$(stat -c %Y "$filepath")
				
				# 计算时间差(单位:秒)
				time_diff=$((current_time - last_modified))
				
				echo "$nowtime info : $filepath last modified --> nowtime : $time_diff" >> /usr/local/adasMonitor.log
				
				# 文件夹更新时间超30分钟
				if [ $time_diff -gt 1800 ]; then
					echo "$nowtime error : $filepath last modified --> nowtime : $time_diff" >> /usr/local/adasMonitor.log
					sudo reboot;
				fi
			else
				echo "$nowtime warning : $filepath is not exit!" >> /usr/local/adasMonitor.log
				
				# 获取今天0点0分0秒的时间戳
				midnight_timestamp=$(date -d "today 00:00:00" +%s)
				
				# 计算时间差(单位:秒)
				time_diff=$((current_time - midnight_timestamp))
				
				# 判断时间差是否大于10分钟
				if [ $time_diff -gt 600 ]; then
					echo "$nowtime error : $filepath is not exit and great 600 seconds!" >> /usr/local/adasMonitor.log
					sudo reboot;
				fi
			fi
		fi
		
		sleep 3600
	
	done
}
 
main
手把手教你复现IEEE 2025高光谱图像盲超分算法DBSR(附开源代码与避坑指南) 本文详细介绍了如何从零复现IEEE 2025高光谱图像盲超分算法DBSR,包括环境配置、数据预处理、核心模块解析、训练策略及常见问题解决方案。特别针对开源代码中的关键步骤和潜在问题提供了实用指南,帮助研究者和开发者高效实现Deep blind super-resolution技术,适用于遥感、医疗等领域的图像增强应用。 阅读详情

相关推荐

无人机巡检提速3倍!YOLOv8n+OpenVINO让Jetson Nano跑25FPS,还能多飞25分钟

摘要(149字): 针对无人机巡检中Jetson Nano算力不足导致的帧率低、首次推理延迟高、续航短等问题,提出YOLOv8n+OpenVINO联合优化方案: 模型轻量化:YOLOv8n参数量仅3.2M(较v8s减少71%),Jetson Nano帧率从8FPS提升至15FPS(原生),绝缘子裂纹召回率仅降3%; OpenVINO加速:AUTO模式动态分配CPU/GPU算力,首次推理延迟从500ms降至200ms,帧率再优化至25FPS; 能效提升:功耗降低40%,单次续航延长25分钟。方案已落地电力/林

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1242

Shell 中删除文件指定内容

Shell 中删除文件内容的几个用法 1、删除包含指定关键字的行: sed -i '/hello/d' 文件名 2、删除指定行号的行 sed -i '2d' 文件名 3、删首行 sed -i '1d' 文件名 4、删尾行 sed -i '$d' 文件名 5、删空格 sed -i 's/[ ]*//g' 文件名 6、删空行 sed -i '/^$/d' 文件名 ...

m0_59737088的博客 1万+

MUSIC算法翻车?Toeplitz矩阵重构如何解决DOA估计中的相干信源难题

本文深入探讨了MUSIC算法在相干信源DOA估计中失效的根本原因,并详细介绍了基于Toeplitz矩阵重构的协方差矩阵修复技术。该方法通过凸优化恢复协方差矩阵的理想结构,有效解决了信号子空间秩亏损问题,从而显著提升了MUSIC算法在相干和多径场景下的分辨精度与稳健性。

a2b3c4d5e的博客 249

【shell】sed:对文本查找后进行:替换、删除、插入、更改文本

【shell】sed:对文本查找后进行:替换、删除、插入、更改文本

hiliang521的博客 5203

EEGLAB安装、EDF数据导入、EEG预处理(Matlab)

目录下载和安装下载安装遇到问题及解决方案导入EDF数据EEG预处理 下载和安装 下载 链接:https://pan.baidu.com/s/17eMT6B7LgZ4PyqWvD5ixmg 提取码:12gz 安装 **第一步:**将下载下来的文件解压,修改名称为eeglab,将此文件夹存放在matlab的安装目录里的toolbox文件夹下,下图是我的路径,需要拷贝到自己相对应的路径中 第二步: 打开Matlab软件,点击主页中的设置路径 设置路径 点击添加并包含子文件夹,将eeglab文件夹添加进来,保

y18771025420的博客 1万+

YOLOv11多模态融合实战:基于YOLOFuse的RGB与红外线(IR)协同检测技术解析

本文深入解析了YOLOv11多模态融合技术,重点介绍基于YOLOFuse框架的RGB与红外线(IR)协同检测方法。通过动态权重分配、跨模态特征对齐等创新设计,实现在低光照等复杂环境下的高精度目标检测,mAP提升高达37%。文章包含实战案例、训练技巧和部署方案,为计算机视觉开发者提供完整的多模态融合解决方案。

weixin_29038345的博客 292

Shell脚本之文本处理三剑客——sed

sed编辑器时一种,流编辑器会在编辑器处理数据之前基于预先提供的一组规则来。sed编辑器可以根据命令来处理数据流中的数据,这些命令。

weixin_46254171的博客 1362

​ISP算法及架构分析介绍

ISP算法及架构分析介绍ISP即Image Signal Processor,是一种图像处理架构,不是我们用的下载器。ISP其实算是图像处理的一个特例,一般应用于前端设备(相对于SENSOR),从结果上看就是将RAW数据转换成压缩后的RGB(一般)数据,供后续CPU使用(识别、压缩等)。市面上很少有直接介绍ISP的书籍或者资料,今天我们主要是聊一聊ISP算法的架构,这样大...

OpenFPGA的博客 5404

shell中常用命令

shell中常用命令,如find,for循环遍历等

weixin_42726887的博客 3506

Hermes Agent 安装部署完全指南

Hermes Agent安装部署指南提供了两种安装方式:一键脚本安装和手动分步安装。该AI助手支持多平台运行(Linux/macOS/WSL2),核心功能仅需Git作为前置依赖,其他依赖如Python、Node.js等均由安装脚本自动处理。文档详细介绍了系统要求、依赖管理、配置目录结构、环境变量设置以及10个手动安装步骤,并提供了功能模块化选项,用户可根据需求选择安装语音交互、浏览器自动化等扩展功能。安装完成后可通过hermes doctor命令验证环境,并通过交互式向导完成初始化配置。

简简单单Onlinezuozuo 2620

1、掌握 Microsoft Dynamics 365 Business Central 开发全解析

本文全面解析了Microsoft Dynamics 365 Business Central的开发全流程,涵盖开发环境搭建、AL语言扩展开发、定制解决方案实现、高级开发技术、文件与报表处理、打印功能、调试与性能优化、API使用、Azure和Power Platform集成、DevOps实践以及生成式AI应用。同时探讨了开发工具技巧、常见问题解决、开发流程优化、团队协作要点及未来技术趋势,帮助开发者系统掌握Business Central开发核心技能,提升企业级应用开发效率与质量。

food6的博客 111

[Linux] shell文本处理记录 - 查找、增删特定行及附近行

1.grep查找关键字所在行号、查找关键字前后行 2.sed删除指定行及其前后若干行 3.sed在匹配行前或后添加一行,并且保留空格

皮卡丘在充电 5148

深度强化Q学习-基于微软AirSim仿真环境的自动驾驶案例(原理代码详解简易可行)

最近在学习《强化学习原理与Python实现》,肖智清著。参考第十二章的自动驾驶案例,写一篇总结,尽量做到简单可行,让有志于自动驾驶的小伙伴可以通过此篇博客可以管中窥豹,初步了解自动驾驶的强化学习训练过程。 本篇将自动驾驶问题转化为回合制的强化学习任务,设计以车辆观察图像和运行状态为输入的自动驾驶算法,并在AirSim仿真环境中进行训练和测试。本篇使用带经验回放和目标网络的基于深度Q网络算法设计并实现智能体,对经验回放、目标网络和深度Q学习算法进行简单介绍,并用代码实现。

shao918516的博客 8599

Linux生产环境磁盘监控:80%阈值告警Shell脚本实现

Linux生产环境磁盘监控:80%阈值告警Shell脚本实现

https://ophome.blog.youkuaiyun.com,在IT行业有多年的工作经验,尤其是在Python、Linux、负载均衡、Nginx和服务器运维等领域。 1100

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

mysql生产环境备份_生产环境下shell脚本:Mysql数据库备份和Mysql主从同步监控

作者:迷神在企业的Liunx运维中,经常需要应用到各种shell脚本,比如MySQL数据库备份Shell脚本和Mysql主从同步监控Shell脚本等等常用企业运维shell脚本。。下面分享两例,希望对大家有帮助Mysql数据库备份脚本(完整备份+异地备份)Mysql数据库备份其实方法有很多,一般非超大量业务,可以使用 mysqldump 。Mysql数据库备份可以采用在MYSQL从库上执行全量备份...

weixin_33375360的博客 219

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

生产环境Shell脚本Ping监控主机是否存活(多种方法)

在网上针对shell脚本ping监控主机是否存活的文档很多,但大多都是ping一次就决定了状态,误报率会很高,为了精确判断,ping三次不通再发告警,只要一次ping通则正常。于是,今天中午抽出点时间总结了下面脚本。脚本功能:通过Ping命令监控主机是否存活,如果ping失败则继续ping,三次不通就认为主机宕机或网络有问题,这时就可以发送邮件告警了。方法1:#!/bin/bash # blog:...

weixin_34212189的博客 478

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

生产环境下shell脚本:Mysql数据库备份和Mysql主从同步监控

在企业的Liunx运维中,经常需要应用到各种shell脚本,比如Mysql数据库备份Shell脚本和Mysql主从同步监控Shell脚本等等常用企业运维shell脚本。。下面分享两例,希望对大家有帮助 Mysql数据库备份脚本(完整备份+异地备份) Mysql数据库备份其实方法有很多,一般非超大量业务,可以使用 mysqldump 。Mysql数据库备份可以采用在MYSQL从库上执行全量备份+...

La victoria的博客 808

生产环境超实用Shell脚本三

本文介绍生产环境中实用的Shell脚本,包括安全加固、数据同步、数据库备份、网站监控和日志分析脚本,提供示例代码,可自动化运维任务,提高系统安全性、数据备份迁移、网站监控及日志分析效率。

我码玄黄的博客 497

shell 同步mysql数据库_生产环境下shell脚本:Mysql数据库备份和Mysql主从同步监控...

作者:迷神Mysql数据库备份脚本(完整备份+异地备份)Mysql数据库备份其实方法有很多,一般非超大量业务,可以使用 mysqldump 。Mysql数据库备份可以采用在MYSQL从库上执行全量备份+增量备份方式。注意,尽力选择服务器使用少的凌晨的时候进行备份,如果有主从的话,需要在从库中备份避免Mysql主库备份的时候锁表造成业务影响。#!/bin/bash set -e #错误时,便停止执行...

weixin_39996750的博客 189

nagios监控流量大小的插件

由于公司需要监控流量的大小以及超过一定的阀值就进行报警,于是在网上搜索了下,发现了这个论坛: http://www.itnms.net/discuz/viewthread.php?tid=767&extra=pageD1&page=1 这个作者做了一个shell脚本,用来监控流量的,感觉不错,就用到了生产环境上了,感谢这位作者. ...

weixin_33912445的博客 103

从入门到生产:运维工程师必备的 Shell 编程完全指南(附 10 个生产级脚本)

Shell脚本编程是运维工程师必备的核心技能。本文系统介绍了Shell编程基础知识和10个生产级实用脚本,涵盖系统监控、日志清理、服务重启、文件备份等常见运维场景。重点讲解了编写生产环境Shell脚本的8大规范:严格模式、绝对路径、变量引号、命令判断、日志记录等。每个脚本都遵循最佳实践,可直接修改使用。掌握这些技巧能显著提升脚本的健壮性和安全性,避免"删库跑路"等生产事故。文章还强调Shell脚本是自动化运维的基础,为学习更高级的DevOps工具打下坚实基础。

Peter_Tang1412的博客 704

shell编程学习之生产环境下的脚本学习

文章目录前言生产环境下的统计类脚本1. 统计设备资产明细脚本2. 统计重要业务程序是否正常可以运行3. 统计机器的IP连接数生产环境下的监控类脚本1. 在Nginx负载均衡器上监控Nginx进程的脚本2. 系统文件打开数检测脚本3. 检测机器的CPU利用率生产环境下的运维开发类脚本1. 控制shell多进程数量的脚本 前言 前两天学习了shell的初级编程,初步掌握了awk,sed, grep三剑客的用法,今天学习几个大佬写出来的脚本,巩固下学到的知识,顺便记录下脚本的内容,方便以后使用查找。 生产环境下的

奔跑的蜗牛的博客 675

【Linux】Shell 脚本监控服务运行状态 自动重启

Shell 脚本监控服务运行状态与自动重启方案 本文介绍三种Shell脚本方案监控Java服务运行状态并实现自动重启: 基础方案:通过ps和grep检测进程是否存在,但可能误判进程状态 端口检测方案:使用lsof检查服务端口是否监听,适合Web服务 健康检查方案:通过curl测试健康接口(如/actuator/health),最精准可靠 文章还提供了: 完整的Shell脚本示例 Java项目中启用Actuator的方法 通过crontab设置定时监控 防止无限重启的冷却机制 可视化流程图展示监控逻辑 这套方

千淘万漉虽辛苦,吹尽狂沙始到金 2万+

Shell脚本批处理启动liunx中mysql+tomcat+nginx+redis服务

1.简单粗暴点将代码粘贴出来,但是在公司有的项目名该隐藏的就隐藏了,不懂可以看注释或者询问博主。 #基本这种情况,我写了个监控shell脚本的解决方案,不管以上出现那种情况,都自动恢复Nginx、mysql、tomcat、redis的服务.该脚本在生产环境上运行正常 #!/bin/bash # # filename: startBatch.sh # 功能:监控 nginx、my...

点点的博客 1627
上一篇: C++ STL学习总结
下一篇: ettercap内网DNS劫持实验
码农诗人
博客等级 码龄11年 987粉丝 84原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值