linux No space left on device 问题解决

问题:网站无法登陆,上传文件失败 …
查找问题:
  1. 查看日志,出现如下错误:
PHP Warning:  session_start(): open(/var/tmp/php/session/sess_s0enu22sojitqshbm6bs4dsf95, O_RDWR) failed: No space left on device (28) in /var/www/sites/prod/include.inc.php on line 2, referer: http://www.yuming.com/photodetail.php?id=ozx6G1zs/Ti00C6Rk/A&from=groupmessage

问题是磁盘空间不足,无法写入session,这种原因通常是文件空间不足或者文件索引被占用完
2. 查看磁盘空间信息

df命令用于显示磁盘分区上的可使用的磁盘空间。默认显示单位为KB。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。

[root@srv-web1 tkont]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/xvda1             20G  3.9G   15G  21% /
tmpfs                 1.9G     0  1.9G   0% 
/dev/www             158G   42G  109G  28% 

发现空间是足够的,然后df -i 查看了下inodes,发现根目录下的inodes值使用率为100%了

[root@srv-web1 tkont]# df -ih
Filesystem   Inodes  IUsed  IFree IUse% Mounted on
/dev/xvda1    1.3M    1.3M    0k   100% /
tmpfs         479K  1  479K  1% /dev/shm
/dev/www      10M 373K 9.7M  4% /var/www/sites
解决问题

通过以下脚本进行检查,查看到底哪个目录下面的文件最多,依次定位到最终最大的那个目录

for i in /*; do echo $i; find $i | wc -l; done

将大文件删掉,如果直接用rm -rf 会报错/bin/rm Argument list too long,用xargs 去避免这个问题

ls | xargs -n 10 rm -rf

然后登陆系统,问题最终解决!

问题总结

该问题从发现到解决总共花掉30分钟,定位问题相对容易,就是因为垃圾文件长时间没清理,导致清理文件花太多的时间,为了避免该类问题,最好对系统的垃圾文件进行定时清理,或者部署监视系统。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值