帮我写一个linux服务器巡检的脚本
时间: 2023-09-14 14:11:39 浏览: 83
当然可以,以下是一个简单的Linux服务器巡检脚本,你可以根据自己的需要进行修改:
```bash
#!/bin/bash
# 巡检日期
DATE=$(date +"%Y-%m-%d")
# 巡检报告保存位置
REPORT_PATH="/var/log/server_check_${DATE}.log"
# 删除旧报告
if [ -f "$REPORT_PATH" ]; then
rm "$REPORT_PATH"
fi
# 记录巡检开始时间
echo "巡检开始时间:$(date +"%Y-%m-%d %H:%M:%S")" >> "$REPORT_PATH"
# 检查系统基本信息
echo "===== 系统基本信息 =====" >> "$REPORT_PATH"
echo "主机名:$(hostname)" >> "$REPORT_PATH"
echo "操作系统版本:$(cat /etc/redhat-release)" >> "$REPORT_PATH"
echo "内核版本:$(uname -r)" >> "$REPORT_PATH"
echo "CPU信息:$(lscpu | grep "Model name" | awk '{print $3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15}')" >> "$REPORT_PATH"
echo "内存信息:$(free -h | grep "Mem" | awk '{print $2,$3,$4,$5,$6}')" >> "$REPORT_PATH"
echo "磁盘信息:$(df -h | awk '{print $1,$2,$3,$4,$5,$6}')" >> "$REPORT_PATH"
echo "" >> "$REPORT_PATH"
# 检查系统服务状态
echo "===== 系统服务状态 =====" >> "$REPORT_PATH"
systemctl list-unit-files --state=enabled | grep "enabled" >> "$REPORT_PATH"
echo "" >> "$REPORT_PATH"
# 检查系统负载
echo "===== 系统负载 =====" >> "$REPORT_PATH"
echo "当前负载:$(uptime | awk '{print $8,$9,$10}')" >> "$REPORT_PATH"
echo "CPU核心数:$(nproc)" >> "$REPORT_PATH"
echo "" >> "$REPORT_PATH"
# 检查系统日志
echo "===== 系统日志 =====" >> "$REPORT_PATH"
tail /var/log/messages >> "$REPORT_PATH"
echo "" >> "$REPORT_PATH"
# 记录巡检结束时间
echo "巡检结束时间:$(date +"%Y-%m-%d %H:%M:%S")" >> "$REPORT_PATH"
echo "巡检完成,报告保存在 ${REPORT_PATH}"
```
使用方法:
1. 将上述脚本保存为 `server_check.sh` 文件;
2. 使用 root 权限执行 `chmod +x server_check.sh` 命令将文件设置为可执行;
3. 使用 root 权限执行 `./server_check.sh` 命令运行脚本,脚本会在 `/var/log` 目录下生成巡检报告文件,文件名格式为 `server_check_YYYY-MM-DD.log`。
注意:该脚本只是一个简单的示例,仅包含了一些基本的巡检内容,如果需要更全面的巡检,还需要根据实际情况进行修改和补充。
阅读全文