1. 程式人生 > >Linux磁碟爆滿!明明有空間卻提示磁碟空間不足!session等小檔案太多刪不掉!

Linux磁碟爆滿!明明有空間卻提示磁碟空間不足!session等小檔案太多刪不掉!

錯誤:

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,卻提醒沒空間了! >>>
[email protected]:~# 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小檔案很可能是罪魁禍首 >>>
[email protected]
:~# locate php.ini /etc/php5/apache2/php.ini [email protected]:~# cat /etc/php5/apache2/php.ini | grep 'session.save_path' session.save_path = "/var/apache/session" [email protected]:~# cd /var/apache/session <<< 使用ls檢視小檔案列表,死活打不開,只能Ctrl+C取消 >>> [email protected]
:/var/apache/session# ls ^C <<< 檢視資料夾總空間大小,也不行 >>> [email protected]:/var/apache/session# du -sh . ^C <<< 試著檢視一小部分的檔案,*是通用匹配符 >>> [email protected]:/var/apache/session# ls sess_aaaa* sess_aaaa847shrs6tfjska31sesoh1  sess_aaaadhno3hhco60v85kgbjcdu0 sess_aaaa8e47k45c703bsbqngn5ah4  sess_aaaavf5jp6185cghj2beelclm6 <<< 看看檔案總數,成功,但是要等幾分鐘, 六百多萬個檔案! >>> [email protected]:/var/apache/session# ls | wc -l 6354033 <<< 看看多少個檔案是一天都沒修改過的(1440分鐘=1天) >>> [email protected]:~# find /var/apache/session -depth -type f -mmin +1440 | wc -l 6299866 <<< 試過了逐個刪除rm ./*失敗了,根本就動不了 >>> <<< 準備刪掉整個資料夾,重建! >>> [email protected]:~# cd /var/apache/ [email protected]:/var/apache# ls session [email protected]:/var/apache# mkdir session2 [email protected]:/var/apache# ls session  session2 <<< 因為此目錄是Apache在使用,直接刪恐怕有衝突,那就先光速地換個資料夾,再慢慢刪! >>> [email protected]:/var/apache# mv session session-old;mv session2 session [email protected]:/var/apache# ls session  session-old [email protected]:/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/ <<< 開始清空掉這堆小檔案,刪除整個資料夾,要等挺久,估計半個小時 >>> [email protected]:/var/apache# rm -R ./session-old/ <<< 另開視窗SSH進來看看硬碟資訊,發現騰出了27G空間,實際檔案總大小352M >>> [email protected]:~$ 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% / [email protected]:~# crontab -e <<< 新增以下新任務並儲存(需改路徑,另外1440可修改,這裡是指一天的分鐘數)>>> <<< 命令解釋:每天凌晨2點自動找出指定位置的1天都沒修改過的檔案,並刪除! >>> 1 2 * * * find /var/apache/session -depth -type f -mmin +1440 -exec rm -f {} \; &>/dev/null

圖示:






延伸閱讀:

php中session檔案過多inode用完,apache無法執行的解決方法
http://www.jquerycn.cn/a_15913

PHP設定session多級路徑並定期自動清理
http://blog.csdn.net/zhouzme/article/details/20014855

相關推薦

Linux磁碟爆滿明明空間提示磁碟空間不足session檔案

錯誤: 1. Linux使用tab補全時提示 bash: cannot create temp file for here-document: No space left on device 2. 網站前端提示Session讀寫失敗:open(..../session_.

明明印象到,APP內搜尋為什麼這麼難用?

趕上了網際網路浪潮的當代人,每當有任何困擾,第一反應都是開啟搜尋引擎。 什麼叫做“硬核相親”,什麼是“pick一下”,“達達主義”,“隱形貧困人口”——你都默默搜尋過,不想被時代與話題拋棄。也許只有這樣暗自努力,才能讓生活與社交看起來毫不費力。 但搜尋引擎無法解決一切。 資訊爆炸時,“大

ubuntu下mysql提示table doesn't exist

linux裡面的mysql是區分大小寫的,windows下的mysql不區分。在mysql的安裝目錄裡面找到mysqld.cnf檔案,在[mysqld]的下面(可以看到還有別的配置資訊)新增   lower_case_table_names=1   就行了

檔案明明存在nginx提示404

近日伺服器突然出現問題, 瀏覽器訪問時返回”拒絕訪問”錯誤. 首先檢查了埠情況,netstat -ntulp |grep 80 1發現80埠沒有開啟, 於是便重啟nginx服務service nginx restart1此時再次檢視發現80埠是開啟了的, 然而訪問時提示404錯誤.經確認伺服器的nginx配置

北冥 Data,其名為鯤,鯤之大,一個 MySQL 放

千萬量級的資料,用 MySQL 要怎麼存? 初學者在看到這個問題的時候,可能首先想到的是 MySQL 一張表到底能存放多少條資料? 根據 MySQL 官方文件的介紹,MySQL 理論上限是 (232)2 條資料,然而實際操作中,往往還受限於下面兩條因素: myisam_data_pointer_size,

Linux下的軟體Mysql完全解除安裝(包括其依賴和庫殘留檔案

原文:https://blog.csdn.net/zeng308041977/article/details/75245795 使用yum安裝的時候會自動把依賴包安裝上,但是我們一般解除安裝的時候以為只要刪除之前安裝的那個包就可以了,其實不然。因為你使用yum方式安裝,其依賴包也會被自動

JS頁面一鍵分享QQ空間、新浪微博、豆瓣工具

效果大體如下, 程式碼裡面的js是引用的網路中其他頁面工具js,如果想剔除掉外部依賴,可自己下載,如下幾個url的js檔案,copy到本地修改下即可。 <!DOCTYPE html>

深度學習入行門檻低,開心

安妮 問耕 編譯整理 量子位 出品 | 公眾號 QbitAI 進入門檻太低正在毀掉深度學習的名聲! 這麼一篇標題“憂心忡忡”的討論帖,毫無意外的在reddit上炸了。為什麼發起這麼一個討論?先看看原po主是怎麼說的。 很長一段時間以來,我注意到很多自稱深度學習專家、大咖的人,其實名不副實。這些人沒

【漫畫】活見鬼,明明刪除了資料,空間沒減少

遷移資料常用 1、匯出檔案 - mysqldump 命令  ‍mysqldump 是 Mysql 自帶的邏輯備份工具。其備份原理是通過協議連線到 Mysql 資料庫,將需要備份的資料查詢出來轉換成對應的 inser

磁碟滿了,為啥du顯示還有很大空間

今天有個實習生問了我一個詭異的問題,“線下一臺磁碟大小32G的開發機(虛擬機器)打不出日誌”,把追查過程和大家分享一下。 畫外音:貴司開發機磁碟容量多大?   先du一下,檢視磁碟空間: [[email protected] ~]# du -sc

linux 根目錄磁碟爆滿

1、檢視磁碟空間使用情況 >df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/centos-root 50G 50G 20K 100% / devtmpf

揪出佔用磁碟空間的真凶介紹一個好用的磁碟空間分析清理工具

電腦最近系統盤又告警變紅了,50G的空間已經用去了48G,使用了各種清理工具都不能清理出更大空間。我向一位前輩討教時,他介紹了一個工具給我:SpaceSniffer. SpaceSniffers是個磁碟空間分析工具,它能將磁碟上各個資料夾大小進行整理,讓我們看到哪些資料

關於XML Schema名稱空間中已經xmlns還要targetnamespace的理解

            最近在學習XML Schema,沒法很好的分清名稱空間的xmlns、targetnamespace的區別,為什麼在已經有全域性名稱空間xmlns和定義的名稱空間xmlns:prefix後還要加入一個targetnamespace。上Stackover

Linux 磁碟爆滿故障排查

1.檢查各個磁碟大小 du -sh /* 2.找到有異常大小的資料夾後(比如: /var),檢視空間滿的檔案系統的inodes消耗; 如果還有大量inode可用,說明大檔案佔用空間,否則是可能大量小檔案佔用空間。 df – i /var 3.

IE瀏覽器開啟明明內容的網頁顯示空白頁問題

在做一些以UTF-8為編碼的網站時,有時候用IE瀏覽器開啟這個網站會顯示一個空白頁面,其餘的就什麼也沒有了,但是在檢視網站原始檔時你會發現,網站程式碼已經全部載入了,只是沒有在前臺顯示出來而已,即便是你已經在網站程式碼中用“<meta http-equiv=”Conte

linux-ftools查看Linux 的cached裏面哪些內容

使用linux-ftools查看linux 的cached裏面有哪些內容最近,公司有幾臺java服務器經常出現can not allocate memory 的情況。導致SSH登錄失敗。因此,有必要做點什麽。我們可以使用linux-ftools查看Linux 的cached裏面有哪些內容(工具自己去找吧,博客

怎麽查看linux文件夾下多少個文件(mac同樣)

linux mac du 查看目錄下有多少個文件及文件夾,在終端輸入ls | wc -w查看目錄下有多少個文件,在終端輸入ls | wc -c查看文件夾下有多少個文件,多少個子目錄,在終端輸入ls -l |wc -l若只想知道文件的個數,則,在終端輸入/bin/ls -l |grep ^-|wc

Linux下安裝Oracle10g提示交換空間檢查失敗

oracle 交換空間 如圖: 安裝Oracle10時提示交換空間檢查失敗。交換空間期望值是2790M,實際只有1498M。解決方法:新建臨時swapfile或者是空閑分區,其大小為2790-1498=1292M,在需要時設定為交換空間。步驟:1、查看當前磁盤大小[[email pr

Linux程序寫入oralce數據庫中文顯示為問號??? 代碼實現設置環境變量

ptr 立即生效 gop 退出 name ntc info sys back Linux程序寫入oralce數據庫中文顯示為問號??? 1.問題介紹 根本原因是字符集的問題,是數據庫的字符集和寫入程序的linux系統的字符集不一致導致; 但是用export NLS_LANG

ps分明這個進程,為什麽殺進程還是根本就沒有這個進程????

正在 csdn 查詢 如果 命令 net logs 講課 .cn   前兩天安裝mysql的時候要看一下有沒有mysql的進程存在,就用了下面這條命令         ps -ef|grep mysql 然後查到了一條命令 以為有mysql進程正在運行就去kill -9