一键生成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系统巡检方面的经验和技巧,让我们一起交流学习,共同进步!
需要完整脚本的小伙伴们记得关+注后私信我哦!