一、服务器初始化配置(日均操作 3 次 +)
技能描述
新服务器上线 / 重装必做操作,包含主机名、时区、基础安全配置
操作步骤
设置主机名(生产环境规范)
bash
#临时生效(重启失效)
hostnamectl set-hostname web01-prod
#永久生效(编辑配置文件)
echo "192.168.1.100 web01-prod" >> /etc/hosts
校准系统时区(避免日志时间混乱)
bash
# 查看可用时区
timedatectl list-timezones | grep Asia/Shanghai
# 应用时区
timedatectl set-timezone Asia/Shanghai
更新系统(每月至少 1 次)
bash
# CentOS
yum update -y --exclude=kernel*
# Ubuntu
apt-get update && apt-get upgrade -y`在这里插入代码片`
注意:排除内核更新防止重启,生产环境建议维护窗口执行
二、进程管理(故障排查核心)
技能描述
90% 的故障与进程相关,掌握快速定位异常进程的方法
操作步骤
1.实时监控(top 命令进阶)
bash
top -p $(pgrep -d, nginx) # 只监控nginx进程
top -o %MEM # 按内存排序
2.杀死顽固进程(含安全检查)
bash
# 步骤1:查看进程树
pstree -p 1234
# 步骤2:温柔终止(SIGTERM)
kill 1234
# 步骤3:强制终止(SIGKILL)
kill -9 1234
经验:优先使用killall -w nginx(等待进程优雅退出)
三、网络诊断(日均 5 次 +)
技能描述
从连通性到端口状态的全链路诊断
操作步骤
1.TCP 连通性测试(比 ping 更准确)
bash
nc -vz 192.168.1.100 80 # 测试80端口
# 或
telnet 192.168.1.100 3306
2.追踪路由跳数(定位网络瓶颈)
bash
traceroute -T -p 80 www.baidu.com # TCP 80端口追踪
mtr --report www.aliyun.com # 实时网络质量监控
查看端口占用(含进程信息)
bash
ss -tunlp | grep 80 # 比netstat更高效
# 输出示例
tcp LISTEN 0 128 :::80 :::* users:(("nginx",pid=123,fd=6))
四、磁盘扩容(生产环境高频操作)
技能描述
当df -h发现根分区不足时的标准处理流程
操作步骤(以 LVM 环境为例)
1.新增磁盘分区
bash
fdisk /dev/vdb <<EOF
n
p
1
w
EOF
2.扩展卷组
bash
pvcreate /dev/vdb1
vgextend centos /dev/vdb1 # 假设卷组名centos
扩展逻辑卷并调整文件系统
bash
lvextend -l +100%FREE /dev/centos/root
xfs_growfs /dev/centos/root # XFS文件系统
# 若是ext4则用:resize2fs /dev/centos/root
验证:df -h看到根分区扩容
五、日志分析(故障排查生命线)
技能描述
从海量日志中快速定位问题的 3 个技巧
操作步骤
1.实时监控最新日志(带时间戳)
bash
tail -f /var/log/nginx/access.log | awk '{print strftime("[%Y-%m-%d %H:%M:%S]"), $0}'
2.按关键词统计(500 错误排查)
bash
grep ' 500 ' /var/log/nginx/error.log | awk '{print $4}' | sort | uniq -c
3.分析慢日志(MySQL 为例)
bash
pt-query-digest /var/log/mysql/mysql-slow.log | grep -A 5 'Summary'
六、防火墙配置(安全基线)
技能描述
生产环境端口开放的标准流程(以 firewalld 为例)
操作步骤
1.临时开放端口(测试用)
bash
firewall-cmd --add-port=8080/tcp --zone=public
2.永久开放端口(含服务重载)
bash
firewall-cmd --add-port=8080/tcp --zone=public --permanent
firewall-cmd --reload
3.查看开放端口(含服务名称)
bash
firewall-cmd --list-services # 查看预定义服务
firewall-cmd --list-ports # 查看自定义端口
七、自动化脚本(解放双手的核心)
技能描述
用 Shell/Python 实现每日备份的自动化
实战案例:MySQL 每日备份
bash
#!/bin/bash
# backup.sh
DATE=$(date +%Y%m%d)
BACKUP_DIR=/data/backup/mysql
[ ! -d $BACKUP_DIR ] && mkdir -p $BACKUP_DIR
mysqldump -uroot -p'password' --all-databases | gzip > $BACKUP_DIR/full-$DATE.sql.gz
# 保留7天备份
find $BACKUP_DIR -mtime +7 -name "*.gz" -delete
优化:结合 crontab 每日执行
bash
0 2 * * * /bin/bash /scripts/backup.sh
八、Docker 容器管理(云原生必备)
技能描述
容器化环境的日常操作规范
操作步骤
1.查看容器实时日志
bash
docker logs -f --tail 50 webapp # 追踪最后50行
docker logs --since 1h webapp # 查看最近1小时日志
2.进入容器排查
bash
docker exec -it webapp /bin/sh # 交互式进入
docker exec webapp ls /app # 非交互式执行命令
3.备份容器数据
bash
docker cp webapp:/app/data /tmp/backup # 复制数据到宿主机
九、应急响应(生产故障处理)
技能描述
突发故障的标准处理流程
操作步骤(以 CPU 跑满为例)
1.定位进程
bash
top -bn1 | head -10 # 静态查看CPU占用
ps -eo pid,user,%cpu,%mem,command | sort -k3 -r | head
2.分析原因
bash
strace -p 1234 # 追踪系统调用
lsof -p 1234 # 查看文件句柄
3.临时止损
bash
renice +19 1234 # 降低进程优先级
kill -15 1234 # 尝试正常终止
十、文件恢复(误操作救星)
技能描述
误删文件的紧急恢复方案
操作步骤(ext4 文件系统)
1.卸载分区(重要!)
bash
umount /dev/vda1
2.使用 extundelete 恢复
bash
extundelete /dev/vda1 --restore-file /etc/passwd
ls RECOVERED_FILES/ # 恢复的文件在此目录
3.挂载恢复
bash
mount /dev/vda1 /mnt
cp RECOVERED_FILES/etc/passwd /mnt/etc/
技能矩阵与成长建议
运维箴言: 每周用watch -n 1 'vmstat 1 5; mpstat; free -h’监控系统,培养系统直觉。遇到故障先抓现场(日志 / 进程状态),再复现分析,最后优化预案。