linux 系统一键巡检sh
·
下面写了一个一键生成一个巡检sh 代码 如下所示:
#########################################################################
# Author: shuxiasuiyue
# Mail: yuluolishang@qq.com
# Created Time: 2026年9月22日09:50:44
# Description:
#########################################################################
#!/bin/bash
LOG_FILE="/opt/web/shell/logs/$(date "+%Y-%m-%d").log"
echo "系统巡检报告" > $LOG_FILE
echo "生成时间: $(date "+%Y-%m-%d %H:%M:%S")" >> $LOG_FILE
log(){
echo "$1" |tee -a $LOG_FILE
}
log ""
log "======================[1] 系统基本信息========================"
log "主机名: $(hostname)"
log "IP地址: $(hostname -I | cut -d' ' -f1)"
log "操作系统: $(cat /etc/os-release | grep PRETTY_NAME | cut -d= -f2 | tr -d '\"')"
log "内核版本: $(uname -r)"
log "启动时间: $(uptime -s)"
log "运行时长: $(uptime -p)"
log "系统负载: $(uptime | awk -F'load average:' '{print $2}')"
log "当前时间: $(date)"
log ""
log "======================[2] CPU 信息==========================:"
#log "CPU 型号: $(lscpu | grep 'Model name' | awk -F: '{print $2}' | sed 's/^ *//')"
log "逻辑CPU核数: $(grep "processor" /proc/cpuinfo|sort -u|wc -l)"
log "物理CPU核数: $(grep "physical id" /proc/cpuinfo |sort -u|wc -l)"
log "CPU 使用率: $(top -bn1 | grep '%Cpu' | awk '{print $2}')%"
log ""
log "======================[3] 内存使用情况=========================="
free -h | tee -a $LOG_FILE
log "总共内存: $(free -mh|awk "NR==2"|awk '{print $2}')"
log "使用内存: $(free -mh|awk "NR==2"|awk '{print $3}')"
log "剩余内存: $(free -mh|awk "NR==2"|awk '{print $7}')"
log "内存使用占比: $(free | grep -i mem |awk '{print $6/$2*100}'|cut -c1-5)"
log ""
log "======================[4] 磁盘使用情况=========================="
df -hT | tee -a $LOG_FILE
log ""
log "======================[5] 网络配置和连接=========================="
log "IP 地址: $(hostname -I)"
log "默认网关: $(ip route | grep default | awk '{print $3}')"
#log "网络接口状态:"
#ifconfig | tee -a $LOG_FILE
log ""
log "======================[6] 服务状态检查=========================="
IAM_SCREEN_NAME="IAM" # IAM 端口 9519 easyswoole 相关服务
IAM_PORT=9519
if ss -lntp | grep -q ":$IAM_PORT ";
then
log "-----IAM服务正常-----"
ss -lntp | grep ":$IAM_PORT " | tee -a $LOG_FILE
else
log "-----IAM服务异常,重新启动-----"
screen -dmS "$IAM_SCREEN_NAME" bash -c "cd /opt/web_iam/IAM && php easyswoole server start"
log "IAM服务已在 screen 会话 [$IAM_SCREEN_NAME] 中启动"
fi
log ""
WY_SCRIPT_NAME="get_data_from_mysql_to_kafka" # 网源source =3
if pgrep -f "$WY_SCRIPT_NAME.py" > /dev/null;
then
log "-----数据程序正常-----"
ps aux | grep $WY_SCRIPT_NAME | tee -a $LOG_FILE
else
log "-----数据程序异常,重新启动-----"
screen -dmS "$WY_SCRIPT_NAME" python3 /opt/message_psrp/$WY_SCRIPT_NAME.py
log "网源数据程序已在 screen 会话 [$WY_SCRIPT_NAME] 中启动"
fi
log ""
log "========================[7] crontab服务 ============================"
log "当前 crontab 任务列表:"
crontab -l 2>/dev/null | tee -a $LOG_FILE
log ""
check_cron() {
local desc=$1
local pattern=$2
if crontab -l 2>/dev/null | grep -q "$pattern"; then
log "-----${desc} cron 任务已配置-----"
else
log "-----${desc} cron 任务缺失,请手动恢复-----"
fi
}
check_cron "上游数据处理datax" "datax/job/data_process.sh"
log ""
check_cron_process() {
local desc=$1
local pattern=$2
if pgrep -f "$pattern" > /dev/null; then
log "-----${desc} 进程运行中-----"
pgrep -af "$pattern" | tee -a $LOG_FILE
else
log "-----${desc} 进程未运行(crontab 到点会自动拉起,无需手工启动)-----"
fi
}
check_cron_process "上游数据处理datax" "yq_data_process.sh"
log ""
log "========================[8] 登录记录============================"
log "当前登录用户:"
who | tee -a $LOG_FILE
log ""
log "最近登录记录:"
last -a | head -10 | tee -a $LOG_FILE
log ""
log "检查系统重启记录:"
last reboot | head -5 | tee -a $LOG_FILE
log ""
log "========================[9] 解析卡统计============================"
log "芯片个数/4"
lspci |grep 100 |wc -l |tee -a $LOG_FILE
log ""
log "========================[10] 性能分析============================"
log "内存占用排行前5:"
ps aux --sort=-%mem | head -6 | tee -a $LOG_FILE
log ""
log "CPU 占用排行前5:"
ps aux --sort=-%cpu | head -6 | tee -a $LOG_FILE
log ""
log "=============================巡检完成============================"
log "巡检报告生成完成,保存路径: $LOG_FILE"
log ""

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)