Centos主机检查脚本,已测试(建议收藏)
#!/bin/bash
# 设置颜色变量
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
BLUE='\033[0;34m'
NC='\033[0m' # 重置颜色# 生成分隔线
separator() {
echo -e "${BLUE}=======================================================${NC}"
}# 系统基本信息检查
system_info() {
echo -e "\n${GREEN}>>> 系统基本信息检查${NC}"
separator
echo "主机名 : $(hostname)"
echo "操作系统版本 : $(cat /etc/redhat-release)"
echo "内核版本 : $(uname -r)"
echo "系统运行时间 : $(uptime | awk -F, '{print $1}')"
}# CPU检查
cpu_check() {
echo -e "\n${GREEN}>>> CPU检查${NC}"
separator
echo "CPU型号 : $(lscpu | grep 'Model name' | cut -d':' -f2 | xargs)"
echo "物理核心数 : $(lscpu | grep 'Core(s)' | head -1 | awk '{print $4}')"
echo "逻辑核心数 : $(nproc)"
echo "当前负载 : $(uptime | awk -F 'average:' '{print $2}')"
}# 内存检查
memory_check() {
echo -e "\n${GREEN}>>> 内存检查${NC}"
separator
free -h | awk '
/Mem/{
print "总内存 : " $2
print "已用内存 : " $3
print "可用内存 : " $7
}
/Swap/{
print "交换分区 : " $2
print "已用交换 : " $3
}
'
}# 硬盘检查
disk_check() {
echo -e "\n${GREEN}>>> 硬盘检查${NC}"
separator
df -h | awk '
BEGIN {
print "挂载点\t\t总大小\t已用\t可用\t使用率"
}
/^\/dev/ {
printf "%-15s %-6s %-6s %-6s %-4s\n", $6, $2, $3, $4, $5
}
' | column -t
}# 网卡检查
network_check() {
echo -e "\n${GREEN}>>> 网络接口检查${NC}"
separator
for interface in $(ip -o link show | awk -F': ' '{print $2}' | grep -v lo); do
echo "接口名称 : $interface"
echo "IP地址 : $(ip -o -4 addr show $interface | awk '{print $4}')"
echo "MAC地址 : $(ip link show $interface | awk '/link\/ether/ {print $2}')"
echo "连接速度 : $(ethtool $interface 2>/dev/null | grep Speed | awk '{print $2}')"
echo "连接状态 : $(ip link show $interface | grep -o 'state [A-Z]*' | awk '{print $2}')"
separator
done
}# 主函数
main() {
clear
echo -e "\n${YELLOW}====== 开始系统检查 ======${NC}"system_info
cpu_check
memory_check
disk_check
network_checkecho -e "\n${YELLOW}====== 检查完成 ======${NC}"
}# 执行主函数
main
使用方法:
将脚本保存为 system_check.sh
添加执行权限:
chmod +x system_check.sh
执行脚本:
./system_check.sh
功能说明:
系统基本信息:显示主机名、操作系统版本、内核版本和运行时间
CPU信息:显示型号、物理核心数、逻辑核心数和当前负载
内存信息:显示总内存、已用内存、可用内存和交换分区状态
硬盘信息:显示所有挂载点的磁盘使用情况(自动过滤系统伪设备)
网络接口:显示所有物理网卡的IP、MAC地址、连接速度和状态
注意事项:
需要root权限获取完整的网络接口信息
网络速度检测依赖ethtool工具,如果未安装请执行:
yum install -y ethtool
如果报错./check.sh: /bin/bash^M: bad interpreter: No such file or directory通常是因为脚本文件中含有 Windows 风格的换行符(CR LF,即 ^M
),而不是 Unix/Linux 系统所需的换行符(LF)。这通常发生在将 Windows 上的脚本文件直接传输到 Linux 系统上时。
sed -i 's/\r$//' system_check.sh
也可以使用 Notepad++ 或其他支持 Unix/Linux 样式的换行符的编辑器打开并保存该文件。在 Notepad++ 中,你可以通过以下步骤转换换行符:打开文件,点击顶部菜单的 “编辑” -> “EOL 转换” -> “UNIX/OSX 格式”
posted on 2025-03-25 15:26 Three Apple 阅读(23) 评论(0) 收藏 举报