Centos主机检查脚本

使用方法:

将脚本保存为 CentOS_syscheck.sh

添加执行权限:

复制代码
chmod +x CentOS_syscheck.sh

执行脚本:

复制代码
./CentOS_syscheck.sh


#!/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 "当前时间     : $(date "+%Y-%m-%d %H:%M:%S")"
    echo "上次启动时间  : $(date -d "$(awk -F. '{print $1}' /proc/uptime) second ago" +"%Y-%m-%d %H:%M:%S")"
    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_check

    echo -e "\n${YELLOW}====== 检查完成 ======${NC}"
}

# 执行主函数
main

注意事项:

需要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$//' CentOS_syscheck.sh

也可以使用 Notepad++ 或其他支持 Unix/Linux 样式的换行符的编辑器打开并保存该文件。

在 Notepad++ 中,你可以通过以下步骤转换换行符:

打开文件,点击顶部菜单的 "编辑" -> "EOL 转换" -> "UNIX/OSX 格式"

相关推荐
Blossom.118几秒前
基于深度学习的图像分类:使用ShuffleNet实现高效分类
人工智能·python·深度学习·目标检测·机器学习·分类·数据挖掘
Lenyiin2 分钟前
《LeetCode 热题 100》整整 100 题量大管饱题解套餐 中
java·c++·python·leetcode·面试·刷题·lenyiin
WJ.Polar10 分钟前
Python与Mysql
开发语言·数据库·python·mysql
pk_xz12345621 分钟前
社区资源媒体管理系统设计与实现
网络·python·深度学习·算法·数据挖掘·媒体
边疆.1 小时前
【C语言】文件操作
c语言·开发语言·文件操作
皮卡蛋炒饭.1 小时前
C++中既重要又困难的部分—类和对象
java·开发语言
命苦的孩子1 小时前
Java 数学工具类 Math
java·开发语言
鸡哥爱技术1 小时前
网工知识——常见路由概念
网络·智能路由器
你可以叫我仔哥呀2 小时前
Java程序员学从0学AI(七)
java·开发语言·人工智能·ai·spring ai
普郎特2 小时前
大白话帮你彻底理解 aiohttp 的 ClientSession 与 ClientResponse 对象
爬虫·python