1. 程式人生 > >linux下建立檔案過多,導致inode用光

linux下建立檔案過多,導致inode用光

前段時間在下發彩信的時候,只能收到title,查詢發現是臨時存彩信檔案的目錄太多檔案了(當然,一個號碼存一個彩信包估計也有問題),導致程式寫不進目錄,也讀取不到彩信內容。

今天研究了一下,並且重現當時的情景。

按我理解,首先linux建立檔案上限和兩方面因素有關。1是磁碟容量,2就是索引節點inode了。

linux下用df命令檢視磁碟空間和inode佔用情況,網上一大堆。我比較喜歡用的是df -h 檢視容量,df -ihT 檢視inode和檔案系統型別。

那麼什麼是inode呢?

簡單的就是儲存檔案的元資訊,比如檔案的建立者、檔案的建立日期、檔案的大小等等。可以用stat +檔名來檢視

linux下inode和檔名是分離的,所以cp或者mv檔案,只改變了檔名,但是他的inode不會變。有時候,檔名包含特殊字元,沒辦法用rm刪除(用轉義符號也沒用),這時候可以直接刪除inode節點

比如:我們在windows上傳了一個帶有特殊符號的檔案,比如

首先用ls -il命令檢視其inode,

然後使用命令find ./ -inum 36175886 -exec rm -i {} \;(使用find命令在當前目錄下查詢inode是36175886 的檔案,將其作為引數傳給rm命令,引數位置在{}裡,以\;表示結束)。

當然,有時候還可以用雙引號將要刪除的檔名括起來

好了,回到建立檔案過多的情況。這時候,建立檔案也出錯No space left on device,用vim開啟檔案也出錯E138: Can't write viminfo file,只能刪除了。

相關推薦

linux建立檔案過多導致inode

前段時間在下發彩信的時候,只能收到title,查詢發現是臨時存彩信檔案的目錄太多檔案了(當然,一個號碼存一個彩信包估計也有問題),導致程式寫不進目錄,也讀取不到彩信內容。 今天研究了一下,並且重現當時的情景。 按我理解,首先linux建立檔案上限和兩方面因素有關。1是磁碟容

linuxsudoers檔案損壞修復辦法(附圖、詳細)

前言: 之前不小心[好吧作死]修改了sudoer檔案,未曾想修改失敗導致我不能獲取sudo,su有關這兩個操作許可權都不行了。帶來了很大麻煩,由下記錄下我的糾正過程 命令: cd /etc pkexec visudo 進入編輯,修改為如

Linux建立安裝 smb並進行配置

今天在Linux(Fedora5,其他版本應該大同小異)下建立smb服務終於成功了,下面說說過程吧,作為備忘。 首先在shell裡面查詢自己是否安裝了smb。     [root@localhost ~]# prm -qa samba | grep 'samba'     s

Linux C 建立新目錄然後轉換工作空間到該目錄並呼叫wget函式下載檔案到新建目錄

#include<stdio.h> #include <sys/stat.h> int main () { char wget_cmd[100]; char *pathname="/var/www/html/sssnsd/"; char buf[5

使用dd命令在Linux建立檔案批量大小檔案生成方法

前沿:最近在開發自動從U盤拷貝大批量檔案到linux系統的的功能。由於需要幾十個G的大檔案來做測試,如果自己去找這麼多資源,然後再拷貝,非常麻煩。所以學了下dd命令,現在總結一下: 一、引數介紹 if=FILE         從FILE中讀取資料,而不是預設的標準輸入。

Linux建立進入目錄的許可權建立並顯示普通檔案的許可權

許可權: 檔案許可權 1.檔案訪問者: 擁有者u——-user 所屬組g——-group 其他使用者o—–other 2.檔案訪問許可權的種類: 可讀(r) 可寫(w) 可執行(x) 建立一個目錄,並進入 目錄test

linuxtouch的運用以及在linux建立可執行的.sh檔案

linux的touch命令不常用,一般在使用make的時候可能會用到,用來修改檔案時間戳,或者新建一個不存在的檔案。 1.命令格式: touch [選項]... 檔案... 2.命令引數: -a   或--t

kali linux檔案建立,以及編輯儲存

建立資料夾步驟: 1.mkdir +desktop(路徑)/ index(資料夾名) 在桌面建立了一個index資料夾 mkdir +123456 +desktop(路徑)/ index.txt(資料夾名) 在桌面建立了一個index.txt資料夾,但需要許可權 123456 才能訪

記一次問題linux檔案格式的問題

今天做的一個功能,需要將mysql中的資料,存入redis中去,使用了管道的命令,將需要儲存的欄位,拼接為redis命令的檔案,然後,利用linux的管道命令,將資料存入redis中去。   cat redis_commend.txt | redis-cli -p 9600

Linux重要檔案不小心被刪除?彆著急看這裡!

功能快捷鍵 針對日常維護操作,難免會出現檔案誤刪除的操作。大家熟知linux檔案系統不同win有回收站,刪除後的檔案可以到垃圾箱尋回,要知道linux檔案修復比較費勁,網路上面的文件也是五花八門。 所以本次研究一種比較靠譜的檔案和目錄恢復方法,也給維護人員留一條

建立檔案提示找不見指定的路徑那是因為沒有建立目錄導致

比如建立一個檔案: File file = new File(“C:/test.txt”);  file.createNewFile(); 這樣是正確的,不會出現任何錯去異常。 但是這樣就出現 “系統

linux c建立資料夾並在資料夾中建立檔案

************************************************************************************************************ 建立資料夾,在在檔案裡面建立檔案: 一個例項: #inc

Linux檔案建立、修改、訪問時間的一些操作

學習,stat,lstat,fstat 1 函式都是獲取檔案(普通檔案,目錄,管道,socket,字元,塊()的屬性。 函式原型 #include <sys/stat.h> int stat(const char *restrict pathname, str

linux檔案的拓展由lseek實現

程式碼如下:  1 #include<stdio.h>   2 #include<unistd.h>   3 #include<sys/types.h>   4 #include<sys/stat.h>   5 #includ

live555在arm linux的交叉編譯並下載的Arm板播放H264檔案

我的系統是ubuntu 11.10 1.live555原始碼 和 H264測試檔案下載 ,見如下連結 2.根據自己的交叉編譯器修改config.*(具體見下載檔案中的config.armeb-uclibc), 我的編譯器是buildroot-gcc342-----mi

Linux新增任務計劃計劃內容以sh檔案表示

sh檔案內容: #/bin/sh DATE=`date +%Y%m%d` cd /your/log/path/ for f in *; do cp $f  /path/to/save/$DATE_$f; done 記得要給這個檔案加可執行許可權: chmod a+x   x

NFS: Linux 建立區域網共享資料庫讓K臺電腦同時訪問一個硬碟

Host sudo apt-get install nfs-kernel-server sudo gedit /etc/exports # /etc/exports: the access co

linux基本操作指令解壓刪除檔案操作

一般首先是安裝vmtools之後,就可以實現linux虛擬機器和主機windows的檔案的直接拖拽,這樣就會比較方便windows和linux的互動。 在指導學生做CSAPP課程實驗時,發現好多學生對基本的linux下檔案操作不能掌握,導致實驗無法順利開展,最重要的就是li

Linux建立Swap交換檔案

據瞭解Linux下可以有兩種方法建立交換空間,一種是建立交換分割槽,另一種是建立交換檔案。本文記錄的是建立交換檔案的方法,因為我用的是這種方法。。 起因就是打算編譯整個安卓原始碼,然後報錯,然後有人告訴我說你交換空間為零,然後需要新增交換空間。。。 新增

在adt-bundle建立模擬器sdcard並向sdcard中新增影象檔案

參考    http://stephen830.iteye.com/blog/1151368 參考    http://bbs.51cto.com/thread-834350-1.html