仅需安装3个轻量必备工具,直接复制对应命令执行:
核心规则:遇到崩溃先救服务,再找根因,绝对不要上来就重启整台服务器
步骤1:登录服务器,ssh 用户名@服务器IP(默认端口22,改端口加-p,如ssh root@123.45.67.89)
步骤2:用htop查看CPU占比,按P键按CPU降序排序,找到占比≥90%的进程,记录左侧PID数值
步骤3:先优雅停止服务:kill -TERM [PID],等待10秒;若进程未退出,再强制终止:kill -9 [PID],随后重启对应服务(以Nginx为例:systemctl restart nginx;以PHP-FPM为例:systemctl restart php-fpm)
步骤4:定位根因:用top -p [PID] -H 查看进程内线程的CPU占用,找到峰值线程;再查看对应服务的实时日志,如Nginx错误日志路径:/var/log/nginx/error.log,执行tail -50f /var/log/nginx/error.log,找到导致崩溃的具体请求(如无索引的SQL查询),示例修复:给表加索引,SQL语句:ALTER TABLE order ADD INDEX idx_user_id(user_id);
步骤1:先排查根分区使用率,执行df -h /
步骤2:若某分区100%,如/var分区,执行du -h --max-depth=1 /var 找到最大目录(多为/var/log)
步骤3:绝对不要用rm删除正在被进程占用的日志,用清空命令直接释放空间:如清空Nginx访问日志:> /var/log/nginx/access.log;删除core文件:rm -rf /var/core/
步骤4:恢复服务:执行systemctl restart httpd(或对应服务名),再用df -h确认使用率降至90%以下(安全线)

步骤1:检查服务状态:systemctl status mysqld,若显示dead,尝试启动:systemctl start mysqld
步骤2:启动失败查看错误日志,执行tail -100 /var/log/mysqld.log,常见问题及修复:
步骤3:若启动后仍崩溃,修复损坏的InnoDB表,执行:mysqlcheck -u root -p --all-databases,输入MySQL密码,遇到确认项输入y即可
直接复制配置放入对应路径,以Nginx为例,新建文件/etc/logrotate.d/nginx,写入完整配置:
``` /var/log/nginx/.log { daily missingok rotate 7 compress notifempty create 0640 nginx adm sharedscripts postrotate [ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid` endscript } ```执行命令生效:logrotate /etc/logrotate.d/nginx
执行crontab -e,添加以下行,每5分钟检查CPU峰值并写入日志:
/5 /usr/bin/htop -d 1 -b | grep 'CPU\s[1-9][0-9]\.[0-9]' >> /var/log/cpu_monitor.log
执行crontab -e,添加以下行,每日凌晨2点检测磁盘使用率超过80%的目录并邮件告警(需配置sendmail):
0 2 /usr/bin/du -h /var | awk '{if($1~/[8-9][0-9]%/ || $1~/100%/) print $2}' | mailx -s "磁盘告警" admin@yourdomain.com
所有步骤均为可直接复制执行的实操指令,无额外冗余内容,遇到崩溃可按顺序直接操作,无需额外研究其他内容。
易频IT社区是综合性互联网IT技术门户网站,专注分享网络技术、服务器运维、网络安全、编程开发、系统架构、云计算、大数据等行业干货,实时更新IT行业资讯、零基础教程、实战案例,为IT从业者、技术爱好者提供专业的学习交流平台。
Copyright © 2021-2026 易频IT社区. All Rights Reserved. 备案号:闽ICP备2023013482号 网站地图