1. CentOS系统信息查看指南
作为一名Linux系统管理员,快速获取系统信息是最基础的技能。CentOS作为企业级Linux发行版,提供了多种命令行工具来查看系统配置和版本信息。下面我将详细介绍几种常用的方法,并分享一些实际工作中的使用技巧。
2. 系统基本信息查看
2.1 查看操作系统信息
最直接的方法是使用cat /etc/issue命令。这个命令会显示系统的发行版信息,通常包括CentOS的版本号和代号。例如:
bash复制$ cat /etc/issue
CentOS release 6.10 (Final)
Kernel \r on an \m
注意:在较新的CentOS版本中,/etc/issue文件可能不会包含完整的版本信息,这时需要结合其他命令使用。
2.2 查看内核和系统架构
uname -a命令提供了全面的系统信息:
bash复制$ uname -a
Linux server1 3.10.0-1160.45.1.el7.x86_64 #1 SMP Wed Oct 13 17:20:51 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
输出结果包含以下关键信息:
- 内核版本:3.10.0-1160.45.1.el7.x86_64
- 系统架构:x86_64(64位系统)
- 主机名:server1
- 内核编译时间和版本号
3. 系统版本详细信息
3.1 使用os-release文件
在较新的CentOS版本(7及以上)中,/etc/os-release文件提供了标准化的系统信息:
bash复制$ cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
这个文件特别适合脚本处理,因为它使用了键值对格式,可以方便地用grep提取特定信息:
bash复制$ grep PRETTY_NAME /etc/os-release
PRETTY_NAME="CentOS Linux 7 (Core)"
3.2 其他版本查看方法
对于CentOS 6及更早版本,可以使用以下命令:
bash复制$ cat /etc/redhat-release
CentOS release 6.10 (Final)
或者使用rpm命令查询:
bash复制$ rpm -q centos-release
centos-release-7-9.2009.1.el7.centos.x86_64
4. 系统硬件信息查看
4.1 CPU信息
bash复制$ cat /proc/cpuinfo
这个命令会显示每个CPU核心的详细信息,包括型号、频率、缓存等。要快速查看CPU数量:
bash复制$ grep -c '^processor' /proc/cpuinfo
4
4.2 内存信息
bash复制$ free -h
total used free shared buff/cache available
Mem: 7.7G 1.2G 5.8G 16M 692M 6.2G
Swap: 2.0G 0B 2.0G
-h参数使输出以人类可读的格式显示(GB/MB)。
5. 磁盘和文件系统信息
5.1 磁盘使用情况
bash复制$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 50G 5.2G 42G 12% /
devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 8.6M 3.9G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/sdb1 100G 33G 68G 33% /data
5.2 磁盘分区信息
bash复制$ fdisk -l
Disk /dev/sda: 53.7 GB, 53687091200 bytes, 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000b2f9d
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 104857599 52427776 83 Linux
6. 网络配置信息
6.1 IP地址和网络接口
bash复制$ ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:15:5d:01:02:03 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.100/24 brd 192.168.1.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::215:5dff:fe01:203/64 scope link
valid_lft forever preferred_lft forever
6.2 路由表
bash复制$ ip route show
default via 192.168.1.1 dev eth0 proto static metric 100
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.100 metric 100
7. 系统运行时间和负载
bash复制$ uptime
15:30:45 up 45 days, 3:15, 2 users, load average: 0.05, 0.03, 0.05
这个命令显示:
- 当前系统时间
- 系统已运行时间
- 当前登录用户数
- 系统负载(1分钟、5分钟、15分钟平均值)
8. 系统日志查看
8.1 查看系统日志
bash复制$ journalctl -xe
或者查看特定服务的日志:
bash复制$ journalctl -u nginx.service
8.2 查看启动日志
bash复制$ dmesg | less
9. 系统服务管理
9.1 查看运行中的服务
bash复制$ systemctl list-units --type=service --state=running
9.2 检查服务状态
bash复制$ systemctl status sshd
● sshd.service - OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2023-05-16 10:30:45 CST; 1 months 2 days ago
Docs: man:sshd(8)
man:sshd_config(5)
Main PID: 1234 (sshd)
Tasks: 1
Memory: 5.2M
CGroup: /system.slice/sshd.service
└─1234 /usr/sbin/sshd -D
10. 实用技巧和注意事项
-
组合命令:可以将多个命令组合使用,一次性获取全面的系统信息:
bash复制$ echo "Hostname: $(hostname)"; echo "Kernel: $(uname -r)"; echo "Distro: $(cat /etc/os-release | grep PRETTY_NAME)"; echo "Uptime: $(uptime)" -
信息记录:定期记录系统信息有助于故障排查:
bash复制$ (date; echo "===== System Info ====="; uname -a; cat /etc/os-release; echo "===== Disk Space ====="; df -h; echo "===== Memory ====="; free -h) > system_info_$(date +%Y%m%d).txt -
远程获取信息:通过SSH远程获取系统信息:
bash复制$ ssh user@remotehost "hostname; cat /etc/os-release" -
版本兼容性:不同CentOS版本命令可能略有不同,特别是CentOS 6和7/8之间的区别:
- CentOS 6使用
service和chkconfig管理服务 - CentOS 7及以上使用
systemctl
- CentOS 6使用
-
安全考虑:在生产环境中,避免直接使用root用户执行这些命令,应该通过sudo获取必要权限。
-
脚本自动化:对于经常需要检查的信息,可以编写简单的shell脚本来自动化这个过程。
-
信息准确性:某些命令(如
uname -a)显示的是内核版本而非发行版版本,要区分清楚。 -
日志轮转:系统日志可能会被轮转和压缩,查看完整日志可能需要检查多个日志文件。
掌握这些系统信息查看命令,能够帮助管理员快速了解系统状态,为故障排查和性能调优提供基础数据。在实际工作中,我通常会将这些命令组合使用,或者编写成脚本定期收集系统信息,以便在出现问题时能够快速对比分析。