Linux运维的核心竞争力,不在于背下多少孤立命令,而在于用命令组合快速解决真实故障:磁盘爆满、服务卡死、日志爆炸、网络不通、权限异常……单条命令往往不够用,组合起来才能一键定位、一键处理。
echo "=== 系统状态概览 ===" && \
top -b -n1 | awk '/%Cpu/ {print "CPU使用率: " $2 "%"}' && \
free -h | awk '/Mem/ {print "内存占用: " $3 "/" $2 " 可用: " $7}' && \
df -h | awk '/\/$/ {print "根分区使用率: " $5 " 剩余: " $4}' && \
uptime | awk '{print "系统负载: " $10 $11 $12}'场景:登录服务器先看核心指标,不用多次输入命令
优势:一行输出CPU、内存、磁盘、负载四项关键数据
ps -eo pid,ppid,%cpu,%mem,cmd --sort=-%cpu | head -10
场景:CPU突然飙升,快速定位高占用程序(挖矿、异常脚本)
技巧:查内存把--sort=-%cpu改为--sort=-%mem
find / -type f -size +100M 2>/dev/null | xargs du -sh | sort -hr
场景:磁盘使用率告警,快速定位超大日志/备份/临时文件
灵活:100M可改为1G、500M,按需调整
vmstat 1 3 | awk 'NR>2 {print "IO等待(wa): " $16 "ms 阻塞进程: " $17}'场景:CPU内存正常但系统卡顿,优先排查IO瓶颈
标准:wa持续>10ms说明磁盘繁忙
sar -n DEV 1 2 | grep -v Average | grep eth0 | awk '{print "收: "$5"KB/s 发: "$6"KB/s"}'场景:带宽跑满、网络延迟高,确认是入流量还是出流量异常
注意:CentOS7+网卡名可能是ens33,按实际替换
w | awk 'NR>1 {print "用户: "$1" IP: "$3" 登录时间: "$4}'场景:检查异常登录、暴力破解,快速识别陌生IP
grep -i "error" /var/log/nginx/error.log | grep "2026-03-20" | wc -l
场景:定位某天错误爆发量,判断偶发/持续异常
grep "500" /var/log/nginx/access.log | awk '{print $1,$7}' | sort | uniq -c | sort -nr | head -10场景:接口500飙升,快速定位高频报错IP与URL
tail -f /var/log/secure | grep --line-buffered sshd | awk '/Accepted/ {print "[成功] "$0} /Failed/ {print "[失败] "$0}'场景:实时防暴力破解,立即发现异常登录
sed -n '/2026-03-20 10:00/,/2026-03-20 10:30/p' /var/log/tomcat/catalina.out | grep Exception
场景:开发反馈某时段报错,精准提取异常栈
awk -F '|' '{print $3}' /data/app/app.log | sort | uniq -c | sort -nr | head -5场景:统计接口调用量、用户访问TOP、错误码分布
zgrep "timeout" /var/log/nginx/access.log-20260320.gz | wc -l
场景:不用解压直接检索.gz历史日志,节省空间与时间
find /data/backup -name "*.tar.gz" -mtime +7 -delete
场景:定时清理过期备份,防止磁盘占满
安全:先把-delete换成-print预览再执行
for f in /data/logs/*.log; do mv "$f" "${f}.$(date +%Y%m%d)"; done场景:日志切割归档,便于按天检索
sed -i 's/192.168.1.10/192.168.1.20/g' /etc/app/*.conf
场景:服务迁移、IP变更,批量修改配置
注意:含/需转义/
tar -zcvf /data/backup/app_$(date +%Y%m%d).tar.gz /data/app --exclude=/data/app/logs
场景:备份代码/配置,跳过大体积日志目录
rsync -avz /data/backup/*.tar.gz [email protected]:/data/remote_backup/
场景:异地备份,支持断点续传,比scp更稳定
awk 'NR==FNR{ip[$1]=1;next} $2 in ip==0' /data/black.txt /data/user.log场景:过滤恶意IP访问记录,生成白名单报表
systemctl is-active nginx && journalctl -u nginx --since "10min ago" | tail -20
场景:服务异常,快速看状态+最新日志
ps -ef | grep java | grep -v grep | awk '{print $2}' | xargs kill -9场景:Java进程卡死、无法正常停止
注意:多应用服务器需精确过滤
nohup /data/app/start.sh > /data/logs/app.log 2>&1 &
场景:退出终端不中断进程,常用于启动后台服务
pgrep -f "app.jar" || nohup /data/app/start.sh > /dev/null 2>&1 &
场景:定时检查,进程不存在则自动拉起
ss -tulnp | grep :8080
场景:Tomcat/API启动后无法访问,确认端口是否正常监听
nc -zv 192.168.1.200 3306 || echo "MySQL端口不通"
场景:数据库/中间件连接失败,快速判断网络/防火墙问题
traceroute -n 10.0.0.1 | grep -E '^[0-9]' | awk '{print "跳数:"$1" IP:"$2" 延迟:"$3}'场景:跨网段访问超时,定位哪一跳网络异常
ss -ant | grep :80 | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr | head -10场景:CC攻击、连接暴涨,定位高频IP
find /data/app -perm 777 -type f 2>/dev/null
场景:安全扫描告警,批量整改过高权限文件
getfacl /data/app | grep -E "user:|group:"
场景:普通权限正常但用户无法访问,排查ACL策略
lastlog | grep -v "Never"
场景:安全巡检,清理长期未登录僵尸账号
grep -E "rm -rf|chmod|chown" /root/.bash_history | tail -20
场景:文件丢失、权限异常,回溯管理员操作
先预览再执行:删除、修改、批量操作前,先用ls/cat/echo预览结果,避免误操作
按场景记逻辑:记组合思路而非死记命令,如找大文件=find+du+sort
管道是核心:用|串联输出,实现“筛选→统计→排序→展示”一站式处理
全文详见:http://it-club.cn/post/803.html