CentOS系统管理必备:常用命令详解与实践指南

一、CPU信息深度查询

1.1 基础信息获取

通过/proc/cpuinfo文件可获取CPU详细参数,推荐使用以下组合命令:

  1. # 获取CPU型号(过滤重复行)
  2. grep "model name" /proc/cpuinfo | sort -u
  3. # 提取核心数量(物理核心)
  4. grep "physical id" /proc/cpuinfo | sort -u | wc -l
  5. # 提取逻辑核心数量
  6. grep -c "processor" /proc/cpuinfo

1.2 架构信息验证

使用getconf命令确认系统架构:

  1. # 检查系统位数
  2. getconf LONG_BIT
  3. # 验证CPU支持指令集
  4. cat /proc/cpuinfo | grep -E "lm|sse4_2|avx2"

其中lm标志表示支持64位长模式,sse4_2avx2是现代CPU的向量指令集扩展。

1.3 性能监控工具

推荐使用mpstat(需安装sysstat包)进行实时监控:

  1. # 安装监控工具
  2. yum install sysstat -y
  3. # 启动监控服务
  4. systemctl start sysstat
  5. # 查看1秒间隔的CPU使用率
  6. mpstat -P ALL 1 3

该命令会显示每个逻辑核心的详细使用情况,持续3次采样。

二、内存管理实战

2.1 物理内存查询

三种高效查询方式:

  1. # 方法1:直接解析meminfo
  2. grep MemTotal /proc/meminfo | awk '{print $2/1024 " MB"}'
  3. # 方法2:使用free命令(推荐)
  4. free -m | awk '/Mem/{print $2 " MB"}'
  5. # 方法3:动态监控内存变化
  6. watch -n 1 "free -h"

2.2 虚拟内存优化

当物理内存不足时,系统会使用交换空间:

  1. # 查看交换分区使用情况
  2. swapon --show
  3. # 创建1GB交换文件(临时方案)
  4. dd if=/dev/zero of=/swapfile bs=1M count=1024
  5. chmod 600 /swapfile
  6. mkswap /swapfile
  7. swapon /swapfile

2.3 内存泄漏排查

使用vmstat监控内存变化:

  1. # 持续监控内存状态(每2秒采样)
  2. vmstat 2 10

重点关注si(磁盘换入)和so(磁盘换出)列,持续高值表明存在内存压力。

三、存储系统管理

3.1 磁盘空间分析

  1. # 人类可读格式显示磁盘使用
  2. df -hT
  3. # 查找大文件(示例:查找/var下大于100M的文件)
  4. find /var -type f -size +100M -exec ls -lh {} \;
  5. # 目录空间占用分析
  6. du -sh /etc/* | sort -rh | head -10

3.2 高级分区管理

使用fdisk进行交互式分区:

  1. # 启动分区工具(需root权限)
  2. fdisk /dev/sda
  3. # 常用操作流程:
  4. # 1. 输入n创建新分区
  5. # 2. 选择分区类型(p主分区/e扩展分区)
  6. # 3. 指定起始和结束扇区
  7. # 4. 输入w保存更改

3.3 LVM逻辑卷管理

企业级存储方案示例:

  1. # 创建物理卷
  2. pvcreate /dev/sdb1
  3. # 创建卷组
  4. vgcreate vg_data /dev/sdb1
  5. # 创建逻辑卷
  6. lvcreate -L 50G -n lv_mysql vg_data
  7. # 格式化并挂载
  8. mkfs.xfs /dev/vg_data/lv_mysql
  9. mount /dev/vg_data/lv_mysql /data

四、系统版本管理

4.1 发行版信息查询

  1. # 获取Red Hat系版本信息
  2. cat /etc/redhat-release
  3. # 通用方法(适用于所有Linux)
  4. cat /etc/*-release
  5. # 检查系统架构
  6. uname -m

4.2 内核版本控制

  1. # 查看内核版本
  2. uname -r
  3. # 查看完整内核信息
  4. uname -a
  5. # 查询已安装内核包
  6. rpm -qa kernel*

4.3 系统升级策略

对于CentOS 5等老旧系统,建议:

  1. 评估迁移到现代发行版的可行性
  2. 安装EPEL仓库获取更新包:
    1. rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-5.noarch.rpm
  3. 实施最小化升级策略,避免全系统升级

五、软件包管理进阶

5.1 RPM包管理

  1. # 查询已安装包
  2. rpm -qa | grep httpd
  3. # 查看包详细信息
  4. rpm -qi httpd
  5. # 验证包文件完整性
  6. rpm -V httpd

5.2 YUM仓库优化

配置本地仓库示例:

  1. # 创建仓库目录
  2. mkdir /var/www/html/localrepo
  3. # 生成仓库元数据
  4. createrepo /var/www/html/localrepo
  5. # 配置yum源
  6. cat > /etc/yum.repos.d/local.repo <<EOF
  7. [local]
  8. name=Local Repository
  9. baseurl=file:///var/www/html/localrepo
  10. enabled=1
  11. gpgcheck=0
  12. EOF

5.3 依赖关系解决

当遇到依赖问题时:

  1. # 调试依赖关系
  2. yum deplist httpd
  3. # 强制重新安装(解决文件冲突)
  4. yum reinstall httpd -y
  5. # 清理缓存并重建
  6. yum clean all
  7. yum makecache

六、时间同步与维护

6.1 NTP服务配置

  1. # 安装NTP服务
  2. yum install ntp -y
  3. # 配置上游服务器
  4. cat > /etc/ntp.conf <<EOF
  5. server ntp.aliyun.com iburst
  6. server time1.aliyun.com iburst
  7. EOF
  8. # 启动服务
  9. systemctl start ntpd
  10. systemctl enable ntpd

6.2 手动时间设置

紧急情况下使用:

  1. # 设置硬件时钟
  2. hwclock --systohc
  3. # 设置系统时间
  4. date -s "2024-01-01 12:00:00"
  5. # 同步到硬件时钟
  6. hwclock --systohc

6.3 时区管理

  1. # 查看当前时区
  2. timedatectl | grep "Time zone"
  3. # 修改时区(示例:改为上海时区)
  4. ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

最佳实践总结

  1. 命令组合使用:通过管道符|将多个命令组合,实现数据过滤和格式化
  2. 权限管理:关键操作前使用sudo -i切换root权限,避免频繁使用sudo
  3. 日志记录:重要操作建议重定向到日志文件:
    1. yum update > /var/log/yum_update_$(date +%Y%m%d).log 2>&1
  4. 自动化脚本:将常用命令序列封装为脚本,配合cron实现自动化维护
  5. 安全基线:定期执行yum update保持系统安全更新,但生产环境建议先在测试环境验证

通过系统掌握这些核心命令,运维人员可以高效完成CentOS系统的日常管理工作,为业务系统的稳定运行提供坚实保障。建议结合具体场景建立命令知识库,持续提升运维效率。