一、系统管理基础篇:构建运维能力基石
1.1 系统安装与初始化配置
CentOS 7的安装流程包含磁盘分区策略、网络配置及安全基线设置三个关键环节。推荐采用LVM逻辑卷管理实现存储空间的动态扩展,网络配置需重点关注/etc/sysconfig/network-scripts/目录下的网卡配置文件,其中BOOTPROTO=static参数用于设置静态IP。安全加固方面,建议通过systemctl disable firewalld关闭默认防火墙,转而使用更灵活的iptables/nftables框架。
安装后必做操作清单:
# 更新系统补丁sudo yum update -y# 安装常用工具包sudo yum install -y vim wget curl net-tools# 配置SSH安全参数echo "PermitRootLogin no" >> /etc/ssh/sshd_config
1.2 文件系统深度管理
Linux文件系统采用树形结构,核心目录遵循FHS标准:
/etc:系统配置文件集中地/var:动态数据存储区(日志/缓存)/opt:第三方软件安装目录
权限控制体系包含三种角色(所有者/所属组/其他用户)和三种权限类型(读/写/执行)。通过chmod 750 script.sh可设置所有者可读写执行、组用户可读执行、其他用户无权限的精细控制。特殊权限位SUID(4)、SGID(2)、Sticky Bit(1)在共享目录管理中尤为重要,例如chmod 1777 /tmp可防止普通用户删除他人文件。
1.3 用户与进程管理
用户管理涉及/etc/passwd(账户信息)、/etc/shadow(密码哈希)、/etc/group(组信息)三个核心文件。创建用户时推荐使用useradd -m -s /bin/bash username命令,其中-m参数自动创建家目录,-s指定默认shell。
进程管理工具链包含:
ps aux:查看所有进程状态top/htop:动态资源监控kill -9 PID:强制终止异常进程systemctl:管理systemd服务单元
典型运维场景示例:当Web服务无响应时,可通过netstat -tulnp | grep 80检查端口监听状态,结合journalctl -u nginx --no-pager查看服务日志定位问题。
1.4 网络配置进阶
网络配置涵盖三个层面:
- 基础配置:通过
nmcli命令行工具或nmtui文本界面设置IP/子网掩码/网关 - 路由管理:使用
ip route add 192.168.2.0/24 via 192.168.1.254添加静态路由 - 服务绑定:在
/etc/hosts.allow和/etc/hosts.deny中配置TCP Wrappers访问控制
双网卡绑定配置示例:
# 创建bond0接口cat <<EOF > /etc/sysconfig/network-scripts/ifcfg-bond0DEVICE=bond0TYPE=BondBONDING_MASTER=yesIPADDR=192.168.1.100NETMASK=255.255.255.0ONBOOT=yesBONDING_OPTS="mode=6 miimon=100"EOF# 配置从属网卡for i in eth1 eth2; docat <<EOF > /etc/sysconfig/network-scripts/ifcfg-$iDEVICE=$iTYPE=EthernetBOOTPROTO=noneMASTER=bond0SLAVE=yesONBOOT=yesEOFdone
二、服务部署实战篇:八类核心服务搭建
2.1 DNS服务器配置
BIND9作为主流DNS实现,其配置文件采用模块化设计:
named.conf:主配置文件zone/*.zone:区域数据文件rndc.key:管理密钥
正向解析配置示例:
$TTL 86400@ IN SOA ns1.example.com. admin.example.com. (2024030101 ; Serial3600 ; Refresh1800 ; Retry604800 ; Expire86400 ; Minimum TTL)@ IN NS ns1.example.com.@ IN A 192.168.1.10www IN A 192.168.1.20
2.2 Web服务架构
Nginx与Apache的对比选择:
| 特性 | Nginx | Apache |
|——————-|——————————-|——————————-|
| 架构模型 | 异步事件驱动 | 多进程/多线程 |
| 静态资源 | 性能优异 | 中等 |
| 动态处理 | 需依赖FastCGI | 内置模块支持 |
| 配置复杂度 | 较低 | 较高 |
Nginx反向代理配置:
server {listen 80;server_name api.example.com;location / {proxy_pass http://backend_pool;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;}}upstream backend_pool {server 192.168.1.100:8080;server 192.168.1.101:8080;}
2.3 数据库集群部署
MySQL主从复制配置步骤:
- 主库启用二进制日志:
log_bin=mysql-bin - 创建复制账号:
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%' IDENTIFIED BY 'password'; - 从库配置连接信息:
[mysqld]server-id=2relay-log=relay-binlog_bin=mysql-bin
- 启动复制:
CHANGE MASTER TO MASTER_HOST='master_ip', ...; START SLAVE;
2.4 文件共享服务
NFS与Samba的适用场景:
- NFS:Linux环境高性能文件共享(协议轻量)
- Samba:跨平台文件服务(支持Windows ACL)
NFS服务端配置:
# 安装软件包yum install -y nfs-utils# 配置共享目录echo "/data 192.168.1.0/24(rw,sync,no_root_squash)" >> /etc/exports# 启动服务systemctl enable --now nfs-server
三、运维能力提升体系
3.1 自动化运维实践
Shell脚本开发规范包含:
- 统一使用
#!/bin/bash -e声明解释器 - 参数校验使用
getopts实现 - 日志记录采用
exec > >(tee -a /var/log/script.log) 2>&1 - 关键操作前增加确认提示:
read -p "确认执行删除操作?(y/n)" confirm[[ $confirm != "y" ]] && exit 1
3.2 监控告警方案
开源监控工具链组合:
- Prometheus:时序数据采集
- Grafana:可视化展示
- Alertmanager:告警规则管理
Node Exporter监控脚本:
#!/bin/bash# 采集系统指标并推送到Prometheusmetrics=$(cat <<EOF# HELP cpu_usage CPU使用率# TYPE cpu_usage gaugecpu_usage $(top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1}')EOF)echo "$metrics" | curl --data-binary @- http://prometheus:9091/metrics/job/node
3.3 故障排查方法论
四步排查法:
- 现象确认:通过
uptime/dmesg/journalctl收集基础信息 - 范围定位:使用
strace/lsof/tcpdump进行进程级诊断 - 根因分析:结合系统日志、应用日志进行关联分析
- 方案验证:在测试环境复现问题并验证修复效果
典型案例:当MySQL出现连接拒绝时,排查路径应为:netstat -tulnp | grep mysql → ps aux | grep mysqld → tail -f /var/log/mysqld.log → SHOW VARIABLES LIKE 'max_connections';
本指南通过200+个可执行命令、30+个配置模板、15个完整项目案例,系统构建了从Linux基础管理到服务部署的完整知识体系。配套提供的命令速查手册、故障排查树状图及教学PPT,可帮助读者快速定位关键知识点,实现从理论学习到实战应用的无缝衔接。无论是构建企业级基础设施,还是准备RHCE认证考试,本指南均可作为值得信赖的技术参考手册。