文章目录
- [一、服务器基础登录 & 日常文件操作](#一、服务器基础登录 & 日常文件操作)
- 二、线上故障排查核心命令(进程、端口、负载)
-
- 1、top查看服务器负载、CPU、进程状态
- 2、ps精准查询业务流程
- [3、netstat / ss排查端口占用、连接数](#3、netstat / ss排查端口占用、连接数)
- 三、磁盘爆满故障排查(线上最高频故障TOP1)
-
- [1、df -h 查看整体磁盘占用](#1、df -h 查看整体磁盘占用)
- [2、du-sh 定位大文件/目录](#2、du-sh 定位大文件/目录)
- [四、日志排查实操(运维每日必用:tail + grep)](#四、日志排查实操(运维每日必用:tail + grep))
- 五、权限管理(线上安全刚需:chmod、chown、sudo)
- [六、定时任务 crontab(线上自动化运维核心)](#六、定时任务 crontab(线上自动化运维核心))
- 七、综合线上排错实战流程
本手册聚焦企业线上运维日常工作,涵盖服务器登录、文件管理、日志排查、故障定位、权限管理、定时任务、磁盘故障处理全场景,摒弃内核、编译等底层原理,全部为即用、可排错、线上高频实操案例。
一、服务器基础登录 & 日常文件操作
1、远程登陆服务器
场景:日常登陆线上服务器、测试服务器,进行运维操作。
bash
# 基础登录 格式:ssh 用户名@服务器IP -p 端口(默认22端口可省略-p)
ssh root@192.168.1.100
ssh admin@192.168.1.101 -p 2222
# 免密登录(运维常用,跳过密码输入)
# 1. 本地生成密钥
ssh-keygen
# 2. 推送公钥到服务器
ssh-copy-id root@192.168.1.100
2、查文件、改配置、删除垃圾文件
场景:查看业务配置、修改项目配置、清理服务器临时垃圾文件
bash
# 1. 查找文件(线上最常用)
find /home -name "*.conf" # 查找home目录下所有配置文件
find /var/log -name "*.log" # 查找所有日志文件
find / -name "nginx.conf" # 全局查找指定配置文件
# 2. 查看文件内容(配置、日志)
cat /etc/nginx/nginx.conf # 查看完整配置文件
more /etc/profile # 分页查看大文件
less /etc/redis/redis.conf # 上下翻页查看配置,运维首选
# 3. 修改配置文件
vi /etc/nginx/nginx.conf
vim /home/project/app.ini
# 编辑后保存退出:ESC → :wq 不保存退出:ESC → :q!
# 4. 清理垃圾文件(临时文件、无用缓存、过期包)
rm -rf /tmp/* # 清空tmp临时垃圾文件
rm -rf *.log.old # 清理过期归档日志
rm -rf /var/cache/yum/* # 清理yum缓存垃圾
二、线上故障排查核心命令(进程、端口、负载)
场景:服务器卡顿、服务挂掉、端口占用、CPU负载高、程序异常闪退排查
1、top查看服务器负载、CPU、进程状态
bash
# 直接执行,实时监控服务器状态
top
# 实操排错解读
# 1. load average 三个数值:1分钟、5分钟、15分钟负载,超过CPU核心数即为负载过高
# 2. %CPU、%MEM 查看占用CPU/内存最高的进程
# 3. 快捷键 P:按CPU排序 M:按内存排序
2、ps精准查询业务流程
bash
# 查看所有进程
ps -ef
# 排查指定业务进程(最常用)
ps -ef | grep nginx
ps -ef | grep java
ps -ef | grep mysql
# 杀死异常进程(服务卡死、僵尸进程)
kill -9 进程ID
3、netstat / ss排查端口占用、连接数
bash
# 高频故障 服务启动失败 / 提示端口被占用
# netstat 查看端口、连接
netstat -tulpn # 查看所有监听端口及对应进程
netstat -an | grep 80 # 查看80端口是否被占用
netstat -an | grep 3306 # 排查数据库端口状态
# ss 更快、更高效(运维新版首选,替代netstat)
ss -tulpn # 查看所有监听端口
ss -s # 查看服务器网络连接统计,排查连接爆满
三、磁盘爆满故障排查(线上最高频故障TOP1)
场景:服务写入失败、日志无法输出、程序报错、磁盘空间不足
1、df -h 查看整体磁盘占用
bash
# 查看所有磁盘分区使用率
df -h
# 排错判断
# 若某个分区 Use% 达到90%+,说明磁盘即将/已经爆满,急需清理
# 重点关注:/ 根分区、/home、/var 分区(日志、业务文件都存这里)
2、du-sh 定位大文件/目录
bash
# 查看当前目录所有文件夹大小
du -sh *
# 逐级排查,定位大文件
du -sh /var/log/* # 查看日志目录哪个日志文件过大
du -sh /home/project/* # 查看业务项目文件占用
# 排查出GB级超大日志/垃圾文件后,直接清理
rm -rf 超大日志文件名
四、日志排查实操(运维每日必用:tail + grep)
场景:业务报错、接口异常、服务启动失败、通过日志定位问题
1、tail实时监控日志
bash
# 实时滚动查看最新日志(线上排查首选)
tail -f /var/log/nginx/access.log
tail -f /home/project/app.log
# 查看最后100行日志(排查近期报错)
tail -n 100 /var/log/messages
2、grep过滤报错日志
bash
# 过滤日志中的错误信息
grep "error" /home/project/app.log
grep "Exception" /home/project/app.log
# 实时监控并过滤报错(超高频组合命令)
tail -f app.log | grep "error"
# 统计报错次数
grep -c "500" access.log
五、权限管理(线上安全刚需:chmod、chown、sudo)
场景:文件无法读取、服务无写入权限、普通用户需要执行管理员命令、权限安全加固
1、chmod修改文件读写执行权限
bash
# 给脚本添加执行权限(部署项目必备)
chmod +x start.sh
# 目录授权,读写执行权限
chmod 755 /home/project
# 文件授权,只读权限
chmod 644 /etc/nginx/nginx.conf
2、chown修改文件所属用户、用户组
bash
# 将文件夹归属给nginx用户(解决服务无权限读取文件)
chown -R nginx:nginx /usr/local/nginx
# 递归修改所有文件归属
chown -R admin:admin /home/project
3、sudo权限配置
bash
# 编辑sudo配置文件
visudo
# 添加配置,让admin用户拥有所有管理员权限
admin ALL=(ALL) ALL
# 普通用户执行管理员命令
sudo systemctl restart nginx
sudo df -h
六、定时任务 crontab(线上自动化运维核心)
场景:定时备份数据、定时清理过期日志、定时同步业务数据、定时巡检服务器
1、crontab基础操作
bash
# 编辑定时任务
crontab -e
# 查看所有定时任务
crontab -l
# 删除所有定时任务
crontab -r
2、线上高频实战案例
bash
# 案例1:每天凌晨2点 定时清理7天前的日志文件
0 2 * * * find /home/project/logs -name "*.log" -mtime +7 -rm -rf
# 案例2:每天凌晨3点 定时备份MySQL数据库
0 3 * * * /usr/local/mysql/backup.sh
# 案例3:每小时定时同步业务数据
0 * * * * /home/project/sync_data.sh
# 案例4:每周日凌晨4点 清理服务器临时垃圾
0 4 * * 0 rm -rf /tmp/*
七、综合线上排错实战流程
故障场景:业务访问异常、服务器卡顿
运维排查标准步骤:
- 查负载:top 查看CPU、内存是否过载
- 查进程:ps -ef | grep 业务进程 看服务是否挂掉
- 查端口:ss -tulpn 看端口是否监听、是否被占用
- 查磁盘:df -h 看是否磁盘爆满,du -sh 定位大文件清理
- 查日志:tail -f 日志 | grep error 定位代码/配置报错
- 修复验证:改配置、重启服务、清理垃圾、授权后验证业务恢复