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 格式"

相关推荐
jiet_h1 分钟前
深入解析Kapt —— Kotlin Annotation Processing Tool 技术博客
android·开发语言·kotlin
慵懒学者8 分钟前
15 网络编程:三要素(IP地址、端口、协议)、UDP通信实现和TCP通信实现 (黑马Java视频笔记)
java·网络·笔记·tcp/ip·udp
anda010910 分钟前
11-leveldb compact原理和性能优化
java·开发语言·性能优化
tRNA做科研12 分钟前
通过Bioconductor/BiocManager安装生物r包详解(问题汇总)
开发语言·r语言·生物信息学·bioconductor·biocmanager
Tiger Z13 分钟前
R 语言科研绘图 --- 韦恩图-汇总
开发语言·程序人生·r语言·贴图
爱吃馒头爱吃鱼16 分钟前
QML编程中的性能优化二
开发语言·qt·学习·性能优化
mqiqe22 分钟前
Spring MVC 页面跳转方案与区别
python·spring·mvc
小白的高手之路27 分钟前
torch.nn.Conv2d介绍——Pytorch中的二维卷积层
人工智能·pytorch·python·深度学习·神经网络·机器学习·cnn
船长@Quant30 分钟前
PyTorch量化进阶教程:第五章 Transformer 在量化交易中的应用
pytorch·python·深度学习·transformer·量化交易·sklearn·ta-lab
冰蓝蓝42 分钟前
什么是 实例化
python