Linux一键巡检脚本,建议收藏!

今天分享一个Linux一键快速巡检的Shell脚本,涵盖了常见的系统性能、网络配置、安全检查等方面,适用于单机快速巡检。

一、巡检内容

[1] 系统基本信息

[2] CPU 信息

[3] 内存使用情况

[4] 磁盘使用情况

[5] 网络配置和连接

[6] 服务状态检查

[7] 安全检查

[8] 登录记录

[9] 系统日志检查

[10] 性能分析

巡检结果展示:

二、编写巡检脚本
复制
# 编写巡检脚本 vi /opt/linux_inspection.sh1.2.

添加下面内容:

复制
#!/bin/bash # Linux 一键巡检脚本 # 作者: liyb # 生成时间: $(date) LOG_FILE="/opt/巡检报告_$(date +%F_%T).log" # 初始化日志文件 echo"系统巡检报告" > $LOG_FILE echo"生成时间: $(date)" >> $LOG_FILE # 输出函数 log() { echo"$1" | tee -a $LOG_FILE } log"" 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 -Fload 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"网络连接状态:" ss -tunlp | tee -a $LOG_FILE log"" log"======================[6] 服务状态检查==========================" log"检查特定服务状态 (Firewalld,SSH,Nginx,,Apache,,MySQL):" for service in firewalld sshd nginx apache2 mysqld; do if systemctl is-active --quiet $service; then log"$service 服务状态: 正在运行" else log"$service 服务状态: 未运行" fi done log"" log"========================[7] 安全检查============================" log"SSH 配置:" grep -E "^#?PermitRootLogin|^#?PasswordAuthentication" /etc/ssh/sshd_config | tee -a $LOG_FILE log"" log"系统用户:" awk -F: {if ($3 >= 1000) print $1} /etc/passwd | tee -a $LOG_FILE log"" log"========================[8] 登录记录============================" log"当前登录用户:" who | tee -a $LOG_FILE log"" log"最近登录记录:" last -a | head -10 | tee -a $LOG_FILE log"" log"========================[9] 系统日志检查============================" log"登录失败日志:" grep "Failed password" /var/log/auth.log | tail -10 | tee -a $LOG_FILE || log"未检测到 auth.log 文件" log"" log"检查系统重启记录:" last reboot | head -5 | 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"请根据巡检内容检查系统状态!" log""1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.42.43.44.45.46.47.48.49.50.51.52.53.54.55.56.57.58.59.60.61.62.63.64.65.66.67.68.69.70.71.72.73.74.75.76.77.78.79.80.81.82.83.84.85.86.87.88.89.90.91.92.93.94.95.96.97.98.99.100.101.102.103.104.105.106.107.108.109.110.111.112.113.114.115.116.117.
三、执行脚本
复制
# 给脚本添加权限 chmod +x linux_inspection.sh # 运行脚本 ./linux_inspection.sh # 也可以直接执行 sh /opt/linux_inspection.sh1.2.3.4.5.6.7.8.
四、查看巡检报告

脚本运行完成后,日志文件会保存到 /opt/ 目录,文件名为 linux_inspection_YYYY-MM-DD_HH-MM-SS.log,可以使用以下命令查看:

复制
less /opt/巡检报告_2025-01-10_12:41:26.log1.

五、做成定时任务

使用 cron 定时运行脚本:

复制
crontab -e1.

添加任务:每天早上八点执行脚本

复制
0 8 * * * /bin/sh /opt/linux_inspection.sh1.

THE END
本站服务器由亿华云赞助提供-企业级高防云服务器