Linux磁盘爆满!明明有空间却提示磁盘空间不足!session等小文件太多删不掉!

news/2024/10/24 0:30:19/


错误:

1. Linux使用tab补全时提示 bash: cannot create temp file for here-document: No space left on device

2. 网站前端提示Session读写失败:open(..../session_..., O_RDWR) failed: No space left on device (28)


原因:

(在本案例里):

1. 文件大小为352M的小文件(例如1KB一个) 占用磁盘27G空间!

2. df命令算的是27G空间,而不是352M,并且小文件很难找出在哪。

3. 逐个删除小文件比较慢,直接删除文件夹再重建会快些!


情景:

Ubuntu + Apache + PHP


解决过程:

<<< 明明还有28G,却提醒没空间了! >>>
root@web3:~# df -h
Filesystem                                      Size  Used Avail Use% Mounted on
udev                                            5.9G  4.0K  5.9G   1% /dev
tmpfs                                           1.2G  280K  1.2G   1% /run
/dev/xvda2                                       99G   66G   28G  71% /<<< 通过其它高手的提醒,知道了SESSION小文件很可能是罪魁祸首 >>>
root@web3:~# locate php.ini
/etc/php5/apache2/php.ini
root@web3:~# cat /etc/php5/apache2/php.ini | grep 'session.save_path'
session.save_path = "/var/apache/session"
root@web3:~# cd /var/apache/session<<< 使用ls查看小文件列表,死活打不开,只能Ctrl+C取消 >>>
root@web3:/var/apache/session# ls
^C<<< 查看文件夹总空间大小,也不行 >>>
root@web3:/var/apache/session# du -sh .
^C<<< 试着查看一小部分的文件,*是通用匹配符 >>>
root@web3:/var/apache/session# ls sess_aaaa*
sess_aaaa847shrs6tfjska31sesoh1  sess_aaaadhno3hhco60v85kgbjcdu0
sess_aaaa8e47k45c703bsbqngn5ah4  sess_aaaavf5jp6185cghj2beelclm6<<< 看看文件总数,成功,但是要等几分钟, 六百多万个文件! >>>
root@web3:/var/apache/session# ls | wc -l
6354033<<< 看看多少个文件是一天都没修改过的(1440分钟=1天) >>>
root@web3:~# find /var/apache/session -depth -type f -mmin +1440 | wc -l
6299866<<< 试过了逐个删除rm ./*失败了,根本就动不了 >>><<< 准备删掉整个文件夹,重建! >>>
root@web3:~# cd /var/apache/
root@web3:/var/apache# ls
session
root@web3:/var/apache# mkdir session2
root@web3:/var/apache# ls
session  session2<<< 因为此目录是Apache在使用,直接删恐怕有冲突,那就先光速地换个文件夹,再慢慢删! >>>
root@web3:/var/apache# mv session session-old;mv session2 session
root@web3:/var/apache# ls
session  session-old
root@web3:/var/apache# ll -h
total 352M
drwxr-xr-x  4 root      root        4.0K Feb  3 17:11 ./
drwxr-xr-x 13 root      root        4.0K Oct 23 23:44 ../
drwxr-xr-x  2 www-data  www-data    4.0K Feb  3 17:12 session/
drwxr-xr-x  2 www-data  www-data    352M Feb  3 17:10 session-old/<<< 开始清空掉这堆小文件,删除整个文件夹,要等挺久,估计半个小时 >>>
root@web3:/var/apache# rm -R ./session-old/<<< 另开窗口SSH进来看看硬盘信息,发现腾出了27G空间,实际文件总大小352M >>>
rudon@web3:~$ df -h
Filesystem                                      Size  Used Avail Use% Mounted on
udev                                            5.9G  4.0K  5.9G   1% /dev
tmpfs                                           1.2G  280K  1.2G   1% /run
/dev/xvda2                                       99G   39G   55G  42% /root@web3:~# crontab -e
<<< 添加以下新任务并保存(需改路径,另外1440可修改,这里是指一天的分钟数)>>>
<<< 命令解释:每天凌晨2点自动找出指定位置的1天都没修改过的文件,并删除! >>>
1 2 * * * find /var/apache/session -depth -type f -mmin +1440 -exec rm -f {} \; &>/dev/null


图示:







延伸阅读:

inode解释(解决linux有空间却提示磁盘空间不足的问题)
http://blog.csdn.net/u011021773/article/details/54980820

php中session文件过多inode用完,apache无法运行的解决方法
http://www.jquerycn.cn/a_15913

PHP设置session多级路径并定期自动清理
http://blog.csdn.net/zhouzme/article/details/20014855




http://www.ppmy.cn/news/245834.html

相关文章

几个服务器下很占存储的 隐藏缓存文件夹

18G ./.pylint.d 18G ./.gnome2_private 27G ./dataset 99G ./vpr 18G ./.cache 42G ./anaconda3 Pylint 是一个 Python 代码分析工具&#xff0c;它分析 Python 代码中的错误&#xff0c;查找不符合代码风格标准&#xff08;Pylint 默认使用的代码风格是…

大文件rosbag播放太慢问题解决

录制得到的原始bag包为slam_2019-12-14-23-24-43.bag&#xff0c; 我使用rosbag filter工具将其中某些消息过滤出来了&#xff0c;使用的指令为 rosbag filter slam_2019-12-14-23-24-43.bag slam_2019-12-14-23-24-43_filter.bag "topic /lslidar_point_cloud or topi…

df查看磁盘空间占用满了,却找不到大文件

某台搭建mysql数据库的服务器&#xff0c;邮件一直报警磁盘空间占用大。于是df -hT查看。 Filesystem Type Size Used Avail Use% Mounted on /dev/vda1 ext4 197G 161G 27G 86% / tmpfs tmpfs 16G 0 16G 0% /dev/shm…

【通俗易懂】为什么视频存储用YUV而不是RGB

RGB和YUV区别 RGB常常用于图像的存储&#xff0c;并且十分简单。 但是在视频领域中&#xff0c;RGB就不那么常见了。我们知道&#xff0c;视频其实是由一张张连续的图片序列组成的&#xff0c;我们假设有一个1080p&#xff08;1920 * 1080&#xff09;分辨率、帧率为30帧的视频…

Linux虚拟机磁盘扩容CentOS

测试个东西&#xff0c;发现虚拟机磁盘不够用了&#xff0c;&#xff0c;&#xff0c;&#xff0c;找了半天扩容方法&#xff0c;都是东拼西凑的没个有用的&#xff0c;最后终于找到个完美扩容的&#xff0c;记录下&#xff0c;防止原文以后看不了 原文&#xff1a;https://www…

CentOS7扩容根分区(LVM)

1.查看现有分区大小 df -TH LVM分区&#xff0c;磁盘总大小为20G,根分区总容量为17G 2.关机增加大小为30G(测试环境使用的Vmware Workstation) 扩展分区到30G 3.查看扩容后磁盘大小 df -TH lsblk 磁盘总大小为30G,根分区为17G 4.创建分区 fdisk /dev/sda 将sda剩余空间全部给…

C盘空间暴跌 :)System Volume Information

前几天C盘 空间不够了 删了波文件 剩下30多G 今天发现 有满了 很诡异 有没有添加什么东西 用软件查了波大文件 是C:\System Volume Information 多了个27G的玩意 并且 大文件前几个都有它的东西 占了90G 这个文件是叫 中文名称可以翻译为“系统卷标信息”。这个文件…

VirtualBox压缩VDI文件 VDI文件瘦身方法(cenos7)

virtualbox虚拟机运行久了之后就会发现&#xff0c;磁盘镜像vdi文件越来越大。即使你把虚拟机中的大文件删除&#xff0c;这个vdi文件占用的空间还是不变。也就是说动态扩展的vdi文件只会大&#xff0c;不会小。那么大的文件对于备份和分享都不是很方便&#xff0c;所以有必要的…