DeepSeek多主机智能巡检脚本!shell一键生成html优美报告!来!

一键生成Linux系统巡检报告,脚本攻略大揭秘!



在当今数字化的时代,Linux系统以其稳定性、安全性和开源性,被广泛应用于各种服务器和云计算环境中。然而,为了确保系统的正常运行,定期进行系统巡检是必不可少的工作。手动巡检不仅耗时费力,还容易出现遗漏。

今天,我们就来介绍一个强大的shell脚本——`linux-check.sh`,它可以帮助我们自动生成详细的Linux系统巡检报告,让系统巡检变得轻松高效。



脚本功能概述

`linux-check.sh`脚本的主要功能是对指定的Linux主机进行全面的巡检,并生成一份美观、详细的HTML报告。报告内容涵盖了主机的基本信息、硬件信息、性能指标、安全配置检查以及网络信息等多个方面。通过这份报告,我们可以快速了解系统的运行状态,及时发现潜在的问题。

脚本代码详解

1. 定义输出文件和主机列表

shellscript:d:\Trae CN\testui\linux-check.sh

定义输出文件

REPORT_FILE="system_inspection_$(date +%Y%m%d%H%M).html"

定义主机列表,用户可自行修改

HOSTS=("192.168.1.1" "192.168.1.1" "192.168.1.1")


这部分代码定义了巡检报告的输出文件名,文件名包含了当前的日期和时间,确保每次生成的报告文件名都是唯一的。同时,定义了需要巡检的主机列表,用户可以根据实际情况修改主机的IP地址。

2. 生成HTML报告的头部和主机列表导航栏

shellscript:d:\Trae CN\testui\linux-check.sh
开始生成HTML报告
cat > $REPORT_FILE <<EOF


Linux系统巡检报告




Linux系统巡检报告

生成时间: $(date "+%Y-%m-%d %H:%M:%S")

主机列表

    EOF 生成主机列表导航栏 for host in "${HOSTS[@]}"; do echo "
  • $host
  • " >> $REPORT_FILE done cat >> $REPORT_FILE <<EOF
EOF

这部分代码使用`cat`命令将HTML代码输出到报告文件中,包括报告的标题、元信息、样式表以及主机列表导航栏。通过导航栏,我们可以快速定位到每个主机的巡检信息。

3. 定义辅助函数

shellscript:d:\Trae CN\testui\linux-check.sh
函数:添加报告段落
add_section() {
echo "

$1

" >> $REPORT_FILE echo "" >> $REPORT_FILE } 函数:结束段落 end_section() { echo "
" >> $REPORT_FILE } 函数:添加表格行 add_row() { echo "$1$2$3" >> $REPORT_FILE }

这部分代码定义了三个辅助函数,分别用于添加报告段落、结束段落和添加表格行。这些函数的使用使得代码更加简洁易读,提高了代码的可维护性。

4. 遍历主机列表进行巡检

shellscript:d:\Trae CN\testui\linux-check.sh
遍历主机列表进行巡检
for host in "${HOSTS[@]}"; do
echo "" >> $REPORT_FILE
add_section "主机 $host 基本信息"
{
echo "检查项值状态"
os_name=$(ssh $host "grep PRETTY_NAME /etc/os-release | cut -d= -f2 | tr -d '\"'")
add_row "操作系统" "$os_name" "正常"
kernel_version=$(ssh $host "uname -r")
add_row "内核版本" "$kernel_version" "正常"
uptime_info=$(ssh $host "uptime -p")
add_row "运行时间" "$uptime_info" "正常"
hostname=$(ssh $host "hostname -f")
add_row "主机名" "$hostname" "正常"
} >> $REPORT_FILE
end_section
add_section "主机 $host 硬件信息"
{
echo "检查项值状态"
cpu_model=$(ssh $host "grep \"model name\" /proc/cpuinfo | uniq | cut -d: -f2 | sed 's/^ //'")
cpu_cores=$(ssh $host "grep -c \"processor\" /proc/cpuinfo")
add_row "CPU型号" "$cpu_model" "正常"
add_row "CPU核心数" "$cpu_cores" "正常"
mem_total=$(ssh $host "free -h | awk '/Mem/{print \$2}'")
add_row "总内存" "$mem_total" "正常"
swap_total=$(ssh $host "free -h | awk '/Swap/{print \$2}'")
add_row "交换内存" "$swap_total" "正常"
disk_info=$(ssh $host "df -hT / | awk 'NR==2{print \$2, \$3\"/\"\$4}'")
add_row "根分区使用" "$disk_info" "正常"
} >> $REPORT_FILE
end_section
...
done

这部分代码使用`for`循环遍历主机列表,对每个主机进行巡检。对于每个主机,分别检查其基本信息、硬件信息、性能指标、安全配置检查以及网络信息,并将检查结果添加到报告文件中。



5. 结束HTML报告

shellscript:d:\Trae CN\testui\linux-check.sh
结束HTML报告
cat >> $REPORT_FILE <<EOF


EOF
echo "巡检报告已生成: $REPORT_FILE"

最后,这部分代码将HTML报告的结尾部分添加到报告文件中,并输出报告生成的提示信息。

脚本使用方法

1. 修改主机列表:打开`linux-check.sh`脚本,将`HOSTS`数组中的IP地址修改为需要巡检的主机IP地址。

2. 赋予执行权限:在终端中执行以下命令,赋予脚本执行权限:

chmod +x linux-check.sh

3. 运行脚本:在终端中执行以下命令,运行脚本:

./linux-check.sh

4. 查看报告:脚本运行结束后,会在当前目录下生成一个以`system_inspection_`开头的HTML文件,使用浏览器打开该文件即可查看巡检报告。

通过使用`linux-check.sh`脚本,我们可以轻松地对Linux系统进行全面的巡检,并生成详细的HTML报告。脚本的代码结构清晰,易于理解和修改,用户可以根据实际需求添加或修改检查项。

希望本文对大家有所帮助,如果你在使用过程中遇到任何问题,欢迎在评论区留言讨论。

如果你觉得这篇文章对你有帮助,别忘了点赞、转发和关注哦!转发给身边的运维小伙伴,让更多的人受益。

同时,也欢迎在评论区分享你在Linux系统巡检方面的经验和技巧,让我们一起交流学习,共同进步!

需要完整脚本的小伙伴们记得关+注后私信我哦!

原文链接:,转发请注明来源!