TOP云拥有分布在全国各地及海外丰富的数据中心节点,选择我们的云服务器用来部署企业财务软件、管理软件等,具有低成本高性能优点,可以让您的业务高效快速低门槛上云,选购地址:

TOP云总站云服务器购买链接:https://topyun.vip/server/buy.html

TOP云C站云服务器购买链接:https://c.topyun.vip/cart

以下是为管理软件(以财务软件为例)设计的云服务器自动化巡检脚本框架,涵盖系统健康、服务状态、数据一致性、安全合规等关键巡检项,支持Linux/Windows双环境,并整合告警与日志记录功能。


一、脚本设计原则

  1. 模块化:分功能模块独立执行,便于维护和扩展。

  2. 轻量化:依赖少(仅基础命令行工具),兼容主流云服务器(AWS/Azure/阿里云)。

  3. 自动化:支持定时任务(Cron/计划任务)和告警联动(邮件/钉钉/Slack)。

  4. 可扩展:预留接口接入云平台API(如AWS CloudWatch、阿里云CMS)。


二、核心巡检模块与实现

1. 系统基础健康检查

(1) 资源利用率检查(CPU、内存、磁盘)

#!/bin/bash
# Linux示例:系统资源检查
CPU_THRESHOLD=80
MEM_THRESHOLD=90
DISK_THRESHOLD=90

# CPU利用率
CPU_USAGE=$(top -bn1 | grep "Cpu(s)" | awk '{print 100 - $8}')
if (( $(echo "$CPU_USAGE > $CPU_THRESHOLD" | bc -l) )); then
  echo "[警告] CPU利用率过高: ${CPU_USAGE}% (阈值: ${CPU_THRESHOLD}%)"
fi

# 内存利用率
MEM_USAGE=$(free | grep Mem | awk '{print $3/$2 * 100}')
if (( $(echo "$MEM_USAGE > $MEM_THRESHOLD" | bc -l) )); then
  echo "[警告] 内存利用率过高: ${MEM_USAGE}% (阈值: ${MEM_THRESHOLD}%)"
fi

# 磁盘利用率
DISK_USAGE=$(df -h / | awk '{print $5}' | sed 's/%//g' | tail -1)
if [ "$DISK_USAGE" -gt "$DISK_THRESHOLD" ]; then
  echo "[警告] 根目录磁盘利用率过高: ${DISK_USAGE}% (阈值: ${DISK_THRESHOLD}%)"
fi

(2) 网络连通性检查(关键端口与服务)

# 检查财务软件数据库端口(如MySQL 3306)是否监听
if ! netstat -tuln | grep -q ':3306'; then
  echo "[错误] MySQL服务端口(3306)未监听!"
fi

# 检查外部API接口连通性(如银行支付接口)
if ! curl -s --connect-timeout 5 https://api.bank.com/health > /dev/null; then
  echo "[警告] 银行支付接口不可达!"
fi

2. 财务软件服务状态检查

(1) 进程与端口检查

# 检查财务软件主进程是否运行(假设进程名为finance_app)
if ! pgrep -f "finance_app" > /dev/null; then
  echo "[严重] 财务软件进程未运行!"
fi

# 检查服务监听端口(如8080)
if ! lsof -i :8080 > /dev/null; then
  echo "[错误] 财务软件端口(8080)未监听!"
fi

(2) 关键事务日志分析

# 检查最近10分钟内的错误日志(假设日志路径为/var/log/finance.log)
ERROR_COUNT=$(grep -i "ERROR" /var/log/finance.log | grep "$(date -d '10 minutes ago' '+%Y-%m-%d %H:%M')" | wc -l)
if [ "$ERROR_COUNT" -gt 5 ]; then
  echo "[警告] 财务软件最近10分钟错误日志超过5条: ${ERROR_COUNT}条"
fi

3. 数据一致性检查

(1) 数据库事务完整性

# 检查数据库表锁(MySQL示例)
LOCK_COUNT=$(mysql -u root -p密码 -e "SHOW OPEN TABLES WHERE In_use > 0;" | wc -l)
if [ "$LOCK_COUNT" -gt 0 ]; then
  echo "[警告] 数据库存在锁表: ${LOCK_COUNT}张"
fi

# 检查关键表数据量异常波动(如交易记录表)
TODAY_COUNT=$(mysql -u root -p密码 -e "SELECT COUNT(*) FROM transactions WHERE DATE(create_time) = CURDATE();" | tail -1)
YESTERDAY_COUNT=$(mysql -u root -p密码 -e "SELECT COUNT(*) FROM transactions WHERE DATE(create_time) = DATE_SUB(CURDATE(), INTERVAL 1 DAY);" | tail -1)
if [ "$TODAY_COUNT" -lt "$YESTERDAY_COUNT" -a "$TODAY_COUNT" -lt 100 ]; then
  echo "[警告] 今日交易记录数异常下降: 今日${TODAY_COUNT}条 vs 昨日${YESTERDAY_COUNT}条"
fi

(2) 文件完整性校验

# 检查财务数据备份文件是否完整(如每日备份的SQL文件)
BACKUP_FILE="/backup/finance_$(date +%Y%m%d).sql"
if [ ! -f "$BACKUP_FILE" ]; then
  echo "[严重] 财务备份文件缺失: ${BACKUP_FILE}"
else
  FILE_SIZE=$(du -h "$BACKUP_FILE" | awk '{print $1}')
  if [ "$FILE_SIZE" -lt 10 ]; then  # 假设正常备份文件应大于10MB
    echo "[警告] 财务备份文件大小异常: ${FILE_SIZE}"
  fi
fi

4. 安全合规检查

(1) 漏洞与补丁检查

# 检查系统关键补丁是否更新(Linux示例)
MISSING_PATCHES=$(yum list updates --security | grep -v "Updated Packages" | wc -l)
if [ "$MISSING_PATCHES" -gt 0 ]; then
  echo "[警告] 存在未安装的安全补丁: ${MISSING_PATCHES}个"
fi

(2) 权限与配置审计

# 检查财务软件配置文件权限(如config.ini应为root:finance 640)
CONFIG_PERM=$(stat -c "%a %U:%G" /etc/finance/config.ini)
if [ "$CONFIG_PERM" != "640 root:finance" ]; then
  echo "[严重] 配置文件权限错误: ${CONFIG_PERM} (应为640 root:finance)"
fi

三、告警与日志集成

1. 告警通知(邮件/钉钉)

# 示例:通过curl发送钉钉机器人告警
DINGTALK_WEBHOOK="https://oapi.dingtalk.com/robot/send?access_token=YOUR_TOKEN"
MESSAGE="[财务软件巡检告警] $(date '+%Y-%m-%d %H:%M')\n${ERROR_MESSAGES}"

curl -X POST -H "Content-Type: application/json" -d "{\"msgtype\": \"text\", \"text\": {\"content\": \"$MESSAGE\"}}" "$DINGTALK_WEBHOOK"

2. 日志记录

# 将巡检结果追加到日志文件
LOG_FILE="/var/log/finance_inspection.log"
echo "===== 巡检时间: $(date '+%Y-%m-%d %H:%M') =====" >> "$LOG_FILE"
echo "$ERROR_MESSAGES" >> "$LOG_FILE"

四、定时任务配置

Linux (Cron)

# 每天凌晨2点执行巡检脚本
0 2 * * * /usr/local/bin/finance_inspection.sh >> /var/log/finance_inspection.log 2>&1

Windows (计划任务)

  1. 创建基本任务,触发器设置为“每日 2:00 AM”。

  2. 操作为“启动程序”,填写脚本路径(如C:\scripts\finance_inspection.ps1)。


五、扩展建议

  1. 云平台API集成:

    • AWS:通过boto3调用CloudWatch获取实例指标。

    • 阿里云:使用aliyun-cli查询ECS监控数据。

  2. 可视化看板:

    • 将巡检结果导入Prometheus + Grafana,实现可视化监控。

  3. 自动化修复:

    • 对已知问题(如磁盘满)增加自动清理脚本(如删除7天前的日志)。


通过以上脚本,可实现财务软件在云服务器上的自动化、标准化巡检,及时发现潜在风险并降低人工运维成本。


不容错过
Powered By TOPYUN 云产品资讯