亚洲韩日午夜视频,欧美日韩在线精品一区二区三区,韩国超清无码一区二区三区,亚洲国产成人影院播放,久草新在线,在线看片AV色

您好,歡迎來到思海網絡,我們將竭誠為您提供優質的服務! 誠征網絡推廣 | 網站備案 | 幫助中心 | 軟件下載 | 購買流程 | 付款方式 | 聯系我們 [ 會員登錄/注冊 ]
促銷推廣
客服中心
業務咨詢
有事點擊這里…  531199185
有事點擊這里…  61352289
點擊這里給我發消息  81721488
有事點擊這里…  376585780
有事點擊這里…  872642803
有事點擊這里…  459248018
有事點擊這里…  61352288
有事點擊這里…  380791050
技術支持
有事點擊這里…  714236853
有事點擊這里…  719304487
有事點擊這里…  1208894568
有事點擊這里…  61352289
在線客服
有事點擊這里…  531199185
有事點擊這里…  61352288
有事點擊這里…  983054746
有事點擊這里…  893984210
當前位置:首頁 >> 技術文章 >> 文章瀏覽
技術文章

Linux 下大規模文件自動清理方法(2)

添加時間:2010-12-6  添加: admin 
 文件自動清理的特點與方法

  在指定絕對路徑下刪除一個文件,rm 就可以實現;如果只知道文件名,不知道路徑,我們可以通過 `find` 找到它,然后刪除。推而廣之,如果我們可以根據預設的條件找到指定文件,我們就可以實施刪除操作。這也就是文件自動清理的基本思路,根據預設條件生成待刪 除文件列表,然后執行定期清除任務實施刪除操作。

  對于過期文件而言,他們共同標志是時間戳,根據不同的文件系統,可能是文件創建時間,訪問時間,過期時間等不同的時間屬性。由于過期文件大多 存在于歸檔系統上,這類文件的特點是數量巨大,對于大型系統而言,每天的過期文件數量都可能達到數十萬甚至百萬的數量級。對于如此規模的文件數量,掃描文 件系統,生成文件列表就需要大量的時間,所以文件清理性能是此類人物不得不考慮的問題。

  對于垃圾文件而言,有可能會是存放在特定目錄下的文件,也有可能是是以特殊后綴名結尾的文件,還有可能是因為系統錯誤產生的 0 尺寸或者超大尺寸的文件,對于這些文件而言,文件數量一般不大,但是種類比較繁多,情況比較復雜,需要根據系統管理員的經驗,制定比較細致的文件查詢條 件,定期掃描,生成文件列表,然后進行進一步處理。

  相關 Linux 命令簡介

  常用的文件系統管理命令包括 `ls`,`rm`,`find` 等等。鑒于這些命令都是常見的系統管理命令,在此不做贅述,詳細用法請參見命令幫助或者 Linux 使用手冊。由于大規模文件系統一般都存儲在專用的文件系統上,這些文件系統都提供了獨有的命令進行文件系統管理。本文實踐章節以 IBM 的 GPFS 文件系統舉例,以下簡要介紹 GPFS 的若干文件系統管理命令。

  mmlsattr

  此命令主要用于查看 GPFS 文件系統中文件的擴展屬性,如存儲池信息,過期時間等屬性。

  mmapplypolicy

  GPFS 采用策略對文件進行管理,此命令可以根據用戶定義的策略文件,對 GPFS 文件系統執行各種操作,具有非常高的效率。

  大批量文件自動清理的難點

  Linux 文件刪除機制

  Linux 是通過 link 的數量來控制文件刪除,只有當一個文件不存在任何 link 的時候,這個文件才會被刪除。每個文件都有 2 個 link 計數器—— i_count 和 i_nlink。i_count 的意義是當前使用者的數量,i_nlink 的意義是介質連接的數量;或者可以理解為 i_count 是內存引用計數器,i_nlink 是硬盤引用計數器。再換句話說,當文件被某個進程引用時,i_count 就會增加;當創建文件的軟連接或者硬連接的時候,i_nlink 就會增加。

  對于 rm 而言,就是減少 i_nlink。這里就出現一個問題,如果一個文件正在被某個進程調用,而用戶卻執行 rm 操作把文件刪除了,會出現什么結果呢?當用戶執行 rm 操作后,ls 或者其他文件管理命令不再能夠找到這個文件,但是進程卻依然在繼續正常執行,依然能夠從文件中正確的讀取內容。這是因為,`rm` 操作只是將 i_nlink 置為 0 了;由于文件被進程飲用的緣故,i_count 不為 0,所以系統沒有真正刪除這個文件。i_nlink 是文件刪除的充分條件,而 i_count 才是文件刪除的必要條件。

  對于單個文件刪除而言,我們可能完全不需要關心這個機制,但是對于大批量文件刪除,這卻是一個非常重要的因素,請允許我在隨后章節中詳細闡述,此處請先記下 Linux 的文件刪除機制。

  生成待刪除列表

  當一個文件夾下面有 10 個文件的時候,`ls` 可以一目了然,甚至可以用 `ls – alt` 查看所有文件的詳細屬性;當文件變成 100 個的時候,`ls` 可能只能看一看文件名了;文件數量上漲到 1000,多翻幾頁可能還能接受;如果是 10,000 呢? `ls` 可能需要等上半天才能有結果;再擴展成 100,000 的時候,絕大多數系統可能都沒有反應,或者“Argument list too long”了。不止是 `ls` 會遇到這樣的問題,其它的常用 Linux 系統管理命令都會遇到類似的問題,Shell 有參數來限制命令的長度。就算我們可以通過修改 Shell 參數來擴展命令長度,但這并不能提高命令的執行效率。對一個超大規模的文件系統而言,等待 `ls` 和 `find` 等常用文件管理命令的返回的時間是不可接受的.

  那么我們如何能夠在更大數量級的文件系統上生成刪除文件列表呢?一個高性能的文件系統索引是一個好方法,不過高性能的文件索引是少數人的專利 (這也解釋了為什么 google 和 baidu 能這么賺錢)。好在如此規模的文件系統一般都只存在于高性能文件系統里面,這些文件系統都提供了非常強大的文件管理功能。譬如前面提到的 IBM 通用并行文件系統(GPFS)的 mmapplypolicy,通過直接掃描 inode 來快速掃描整個文件系統,并能夠根據指定條件返回文件列表。下面演示如何根據時間戳和文件類型來獲取文件列表

分享到:

頂部 】 【 關閉
版權所有:佛山思海電腦網絡有限公司 ©1998-2024 All Rights Reserved.
聯系電話:(0757)22630313、22633833
中華人民共和國增值電信業務經營許可證: 粵B1.B2-20030321 備案號:粵B2-20030321-1
網站公安備案編號:44060602000007 交互式欄目專項備案編號:200303DD003  
察察 工商 網安 舉報有獎  警警  手機打開網站