CentOS作为企业级服务器操作系统的主流选择之一,其稳定性和可靠性备受青睐,对于系统管理员而言,熟练掌握CentOS的日常运维工作是保障业务连续性、提升系统性能和确保安全性的基石,一套规范、高效的运维流程,能够让复杂的系统管理变得井然有序,本文将系统性地梳理CentOS日常运维中的核心环节,为管理员提供一份实用的操作指南。
系统状态监控
每日定时检查系统健康状况是运维工作的首要任务,通过一系列命令,管理员可以快速获取系统的关键性能指标,及时发现潜在问题。
资源使用情况
- CPU与内存:
top
或htop
命令是实时查看进程CPU和内存占用率的利器。htop
提供了更友好的交互界面和颜色标识,推荐安装使用,通过free -h
命令可以直观地查看系统总内存、已用内存、空闲内存及交换分区的使用情况,-h
参数会以易读的GB、MB单位显示。 - 磁盘空间:
df -h
命令用于查看各文件分区的总容量、已用空间、可用空间及使用百分比,定期检查可以防止因磁盘写满导致的服务中断,对于查找大文件或目录,可以使用du -sh /path/to/directory
命令,-s
参数汇总目录大小,-h
参数同样提供易读单位。 - 网络连接:
ss -tuln
或netstat -tuln
可以查看系统当前监听的TCP和UDP端口,有助于确认服务是否正常启动以及发现异常端口连接。
常用监控命令一览
命令 | 功能描述 | 常用参数 |
---|---|---|
top /htop | 实时查看进程和系统资源占用 | -p <PID> 查看指定进程 |
free | 查看内存使用情况 | -h 以易读单位显示 |
df | 查看磁盘分区使用情况 | -h 以易读单位显示 |
du | 查看文件或目录大小 | -sh 汇总并易读显示 |
ss /netstat | 查看网络连接、端口监听 | -tuln 查看所有TCP/UDP监听端口 |
用户与权限管理
严格管理用户账户和权限是系统安全的第一道防线。
- 创建与删除用户: 使用
useradd <username>
创建新用户,passwd <username>
为其设置密码,删除用户时,userdel -r <username>
会连同用户的主目录和邮件池一并删除。 - sudo权限配置: 直接使用root账户存在巨大风险,推荐的做法是创建普通用户,并通过
visudo
命令编辑/etc/sudoers
文件,授予其特定的管理权限,配置username ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart httpd
,允许该用户无需密码即可重启Apache服务。
软件包管理
CentOS通过YUM(Yellowdog Updater Modified)或其继任者DNF(Dandified YUM)来管理软件包,极大简化了软件的安装、更新和卸载。
- 更新系统: 定期执行
yum update
或dnf update
是保持系统安全和稳定的关键,该命令会更新所有已安装的软件包到最新版本。 - 安装与卸载软件:
yum install <package_name>
用于安装软件包,yum remove <package_name>
用于卸载,在不确定软件包全名时,可使用yum search <keyword>
进行搜索。 - 清理缓存: 长期使用后,YUM/DNF的缓存会占用大量磁盘空间,定期执行
yum clean all
或dnf clean all
可以清理下载的软件包和旧 headers。
服务管理
在现代CentOS系统中,systemd
是默认的初始化系统和服务管理器,systemctl
是其核心命令行工具。
- 服务状态控制:
systemctl status <service_name>
查看服务状态。systemctl start|stop|restart|reload <service_name>
分别用于启动、停止、重启和重载服务配置。 - 开机自启动管理:
systemctl enable <service_name>
设置服务开机自启,systemctl disable <service_name>
则取消开机自启,使用systemctl is-enabled <service_name>
可以检查服务是否已设置为开机启动。
日志分析与故障排查
系统日志是定位和解决问题的宝贵信息来源。
- 传统日志: 大部分系统和服务日志存放在
/var/log
目录下,系统核心日志为messages
,安全日志为secure
,使用tail -f /var/log/messages
可以实时追踪日志新增内容。 - Journal日志:
systemd
引入了journalctl
,可以集中管理所有服务的日志。journalctl -u <service_name> -f
可以实时查看特定服务的日志。-b
参数可查看自上次启动以来的所有日志。
防火墙与安全加固
- Firewalld防火墙: CentOS 7及以后版本默认使用
firewalld
作为动态防火墙管理工具。firewall-cmd --state
查看其运行状态。firewall-cmd --list-all
查看当前所有规则,添加端口(如开放80端口)的命令为firewall-cmd --permanent --add-port=80/tcp
,执行后需用firewall-cmd --reload
重载配置使其生效。 - SELinux: SELinux(Security-Enhanced Linux)是强制访问控制系统,能显著提升系统安全性,通过
getenforce
命令查看其当前模式,常见的模式有Enforcing
(强制)、Permissive
(宽松,仅记录不阻止)和Disabled
(禁用),在生产环境中,建议保持Enforcing
模式,当服务因SELinux策略无法正常运行时,可查看/var/log/audit/audit.log
或使用audit2allow
工具生成并安装策略模块。
相关问答FAQs
问题1:如果忘记了root密码,该如何重置?
解答: 重置root密码需要进入单用户模式,步骤如下:
- 重启服务器,在GRUB引导菜单出现时,按
e
键进入编辑模式。 - 找到以
linux
或linux16
开头的行,将光标移动到行末,删除ro
(可能是rhgb quiet
等参数),并添加rd.break
或init=/bin/bash
。 - 按
Ctrl + X
启动系统,进入单用户模式的shell。 - 重新挂载根文件系统为可写模式:
mount -o remount,rw /sysroot
。 - 使用
chroot /sysroot
命令切换到原始系统环境。 - 执行
passwd root
命令,根据提示输入新密码。 - 如果系统启用了SELinux,需要执行
touch /.autorelabel
来确保文件在重启后被重新标记,否则可能无法正常登录。 - 输入
exit
退出chroot环境,再输入reboot
重启服务器即可。
问题2:系统负载过高,如何快速定位是哪个进程导致的?
解答: 快速定位高负载进程,可以分步进行:
- 查看平均负载: 首先使用
uptime
或top
命令查看系统最近1分钟、5分钟、15分钟的平均负载,如果该数值远大于CPU核心数,说明系统处于高负载状态。 - 分析CPU占用: 直接执行
top
命令,默认会按CPU使用率从高到低排序,排在第一位的进程通常就是主要的CPU消耗者,你可以按P
键(大写)确保按CPU排序,按M
键(大写)则按内存使用率排序。 - 分析I/O等待: 如果
top
命令中%wa
(I/O wait)这一项很高,说明CPU在等待磁盘I/O操作,瓶颈可能在硬盘,此时可以安装iotop
工具(yum install iotop
),然后运行iotop
来实时查看哪些进程在进行大量的读写操作。 - 综合判断: 结合
top
和iotop
的结果,通常可以快速锁定导致系统负载飙升的“元凶”进程,随后再针对该进程进行具体分析(如是否是应用程序bug、数据库慢查询、恶意程序等)。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复