一 linux 系统故障的一般处理思路
报错信息 ---> 查阅日志文件 ---> 分析定位问题 ---> 解决问题
二 linux 系统无法启动原因及解决
系统无法启动的原因很多, 常见的有下面几种情况:
1 文件系统被破坏, 常常因断电和非法关机引起文件系统结构不一致修复方法是用 fsck 命名强制修复, 进入单用户模式或者交互界面, 按提示进入修改模式中, 卸载对应的问题磁盘, 然后用 fsck 命令修复, 无法恢复的数据会存放在 lost+found 下 umount /dev/sda3 fsck.ext4 -y /dev/sda3
2 系统配置 / etc/fstab 错误或丢失而无法启动当启动时候出现 starting system logger 后停止了, 就要想办法恢复 / etc/fstab 文件, 利用 linux rescue 修复模式登录系统, 从而获取挂载点和分区信息, 重构 / etc/fstab 文件
3 系统内核文件丢失, 内核升级错误, 引导程序出错, 硬件故障等都会引起无法启动
三 linux 网络故障处理思路流程
1 检查权限是否打开, iptables,selinux
2 服务是否正常, 用 Telnet 或 netstat 检查服务是否正常开启
3 检查本机网络是否正常, ping 自身 IP 同网段主机网关
4 检查 DNS 解析是否正常,/etc/hosts 和 / etc/resolv.conf
5 检测网卡 ip 设置, route 检查路由是否正确
6 检查网路硬件, 网卡路由器集线器网线交换机 (lsmodifconfigip)
四 Read-only file system 错误解决
思路:
网站程序问题
磁盘问题
排查网站程序, 看报错信息和服务日志错误, 以及系统日志, 来定位问题所在 Read-only file system 多数就是磁盘问题, 出现上面错误的时候, 磁盘对应目录是无法写入的, 那么就要进行修复了, 文件系统修复命令 fsck
首先查看是否有用户正在使用该磁盘, fuser -m /dev/sda1, 如果有就停止对应端口程序
接着卸载文件系统 umount /www/data
然后修复文件系统 fsck -V -a /dev/sda1
最后恢复挂载 mount /dev/sda1 /www/data
五 Argument list too long 错误解决
当删除一个目录中的大量文件时, 可能会出现这种报错, 这是由于 linux 系统对传递参数的限制, 可以用 getconf ARG_MAX 查看这个数值,
重新编译内核参数可以永久解决问题, 但是编译内核有风险, 还是用下面方法保险
既然不能一下清除大量文件, 那么分批删除或者查找或者循环删除就可以了, 可以用下面命令清理
- rm [a-n]* -rf
- rm [o-z]* -rf
- find /www/data -type f -print -exec rm -f {} \;
六 inode 耗尽故障
当 iNode 耗尽后, 磁盘虽然有剩余空间, 但也会出现 no space left 的报错
用 df -i 命令可以查看所有分区对应 inode 的使用情况
用 ls -i nginx.log 能查看对应文件的 inode 编号详细信息用 stat nginx.log 查看
针对 inode 耗尽的情况, 清理删除那些无用的文件就可以了, 尤其是那些碎小的文件
七 删除文件后空间不释放问题
文件系统的数据分为两个部分: 数据部分和指针部分, 当有进程正在使用某个文件是, 执行删除命令, 空间是不会释放的, 删除的是数据文件部分, 指针部分并未删除, 所以空间并不释放
用 lsof |grep delete 查看已删除的文件, 找到对应文件 执行清空命令 echo " "> /tmp/nginx.log 空间就会得到释放
八 too many open files 错误
服务出现报错异常 too many open files
用 ulimit -n 查看文件描述符 65535 是最大值
检查普通用户的值 cat /etc/security/limits.conf |grep www
如果普通用户的值不是 65535 那么给普通用户添加这个限制
- www soft nofile 65535
- www hard nofile 65535
如果上面的普通用户的值显示 65535 而依旧出现这个错, 就要考虑添加 limit 值的时间是否早于应用最后一次启动的时间, 应用时间早的话, 直接重启应用就可以了
来源: http://www.bubuko.com/infodetail-2547429.html