国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Linux 刪除大量小文件的兩種方案 | 運維進階

這篇具有很好參考價值的文章主要介紹了Linux 刪除大量小文件的兩種方案 | 運維進階。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

【摘要】Linux如何刪除大量小文件?本文介紹了兩種方法。

【作者】趙靖宇

環(huán)境:

RHEL 6.5 + Oracle 11.2.0.4

需求:

使用df -i巡檢發(fā)現(xiàn)Inodes使用率過高,需要清理刪除文件來解決。如果Inodes滿,該目錄將不能寫,即使df -h查看還有剩余空間。

1.問題現(xiàn)象

Oracle的adump下記錄的是sys的登陸審計信息,特點是小碎文件非常多,經(jīng)常會遇到使用rm -rf *命令刪除不了,報錯-bash: /bin/rm: Argument list too long。

這是因為通配符*在執(zhí)行時會替換為具體的文件名,例如rm -rf file1 file2 file3 ...,如果文件數(shù)量過多,就容易出現(xiàn)這個錯誤。

比如在下面的環(huán)境中,adump目錄下文件已達到114萬+,執(zhí)行rm -rf *命令時就會報這個錯誤:

[oracle@jystdrac2 adump]$ pwd/opt/app/oracle/admin/crmdb/adump[oracle@jystdrac2 adump]$ ls|wc -l1149787[oracle@jystdrac2 adump]$ rm -rf *-bash: /bin/rm: Argument list too long[oracle@jystdrac2 adump]$ du -sh4.4G

2.解決方案

清楚了問題現(xiàn)象,解決方案就從除去rm -rf *命令的方式之外,還有哪些方法可用,如果通過網(wǎng)絡(luò)搜索,可能會找到結(jié)合find命令再去執(zhí)行rm的方式,但其實效率非常差,具體寫法這里就不列出了,因為我們通常也不會這樣處理。那么如何較為效率的刪除大批小文件呢?結(jié)合網(wǎng)絡(luò)的經(jīng)驗,并實測驗證,最終總結(jié)了兩種常見的解決方案,效率上也都尚可。

方案一:巧用rsync的方式達到刪除目的

建立一個空文件夾,使用rsync --delete-before -d <空文件夾> <需要清理刪除小文件的目錄>命令最終達到刪除大批小文件的目的。下面演示具體操作:???????

[oracle@jystdrac2 adump]$ mkdir /data/null[oracle@jystdrac2 adump]$ ls -l /data/nulltotal 0[oracle@jystdrac2 ~]$ nohup rsync --delete-before -d /data/null/ /opt/app/oracle/admin/crmdb/adump/ &

使用man rsync查看rsync命令相關(guān)的參數(shù)說明如下:???????

-d, --dirs                  transfer directories without recursing--delete-before         receiver deletes before transfer (default)

方案二:使用find命令的delete參數(shù)

使用find <需要清理刪除小文件的目錄> -type f -delete命令直接刪除大批小文件。

使用man find查看find命令相關(guān)的參數(shù)說明如下:???????

       -type c              File is of type c:                            b      block (buffered) special                            c      character (unbuffered) special                            d      directory                            p      named pipe (FIFO)                            f      regular file                            l      symbolic  link; this is never true if the -L option or the -follow option is in effect, unless the symbolic link is broken.  If you want to                     search for symbolic links when -L is in effect, use -xtype.                                   s      socket                            D      door (Solaris)                     -delete              Delete files; true if removal succeeded.  If the removal failed, an error message is issued.  If -delete fails, find’s exit status will be nonzero              (when it eventually exits).  Use of -delete automatically turns on the ‘-depth’ option.                            Warnings:  Don’t forget that the find command line is evaluated as an expression, so putting -delete first will make find try to delete everything              below the starting points you specified.  When testing a find command line that you later intend to use with -delete, you should explicitly  spec-              ify -depth in order to avoid later surprises.  Because -delete implies -depth, you cannot usefully use -prune and -delete together.

下面演示具體操作:

[oracle@jystdrac1 adump]$ nohup find /opt/app/oracle/admin/crmdb/adump/ -type f -delete &

可以參考下面的命令來簡單監(jiān)控刪除過程中Inodes使用率的變化:

while true; do df -i /; sleep 10; done

比如我這里節(jié)點jystdrac1使用的find方法,節(jié)點jystdrac2使用的rsync方法,實際觀察Inodes釋放速度區(qū)別并不大:???????

# 使用的find方法,觀察Inodes釋放速度:[oracle@jystdrac1 ~]$ while true; do df -i /; sleep 10; doneFilesystem                        Inodes   IUsed  IFree IUse% Mounted on/dev/mapper/vg_linuxbase-lv_root 1806896 1519124 287772   85% /Filesystem                        Inodes   IUsed  IFree IUse% Mounted on/dev/mapper/vg_linuxbase-lv_root 1806896 1519015 287881   85% /Filesystem                        Inodes   IUsed  IFree IUse% Mounted on/dev/mapper/vg_linuxbase-lv_root 1806896 1513880 293016   84% /Filesystem                        Inodes   IUsed  IFree IUse% Mounted on/dev/mapper/vg_linuxbase-lv_root 1806896 1511132 295764   84% /Filesystem                        Inodes   IUsed  IFree IUse% Mounted on/dev/mapper/vg_linuxbase-lv_root 1806896 1502434 304462   84% /Filesystem                        Inodes   IUsed  IFree IUse% Mounted on/dev/mapper/vg_linuxbase-lv_root 1806896 1494583 312313   83% /Filesystem                        Inodes   IUsed  IFree IUse% Mounted on/dev/mapper/vg_linuxbase-lv_root 1806896 1489111 317785   83% /Filesystem                        Inodes   IUsed  IFree IUse% Mounted on/dev/mapper/vg_linuxbase-lv_root 1806896 1487629 319267   83% /
# 使用的rsync方法,觀察Inodes釋放速度:[oracle@jystdrac2 ~]$ while true; do df -i /; sleep 10; doneFilesystem                        Inodes  IUsed  IFree IUse% Mounted on/dev/mapper/vg_linuxbase-lv_root 1806896 963029 843867   54% /Filesystem                        Inodes  IUsed  IFree IUse% Mounted on/dev/mapper/vg_linuxbase-lv_root 1806896 955037 851859   53% /Filesystem                        Inodes  IUsed  IFree IUse% Mounted on/dev/mapper/vg_linuxbase-lv_root 1806896 953088 853808   53% /Filesystem                        Inodes  IUsed  IFree IUse% Mounted on/dev/mapper/vg_linuxbase-lv_root 1806896 950523 856373   53% /Filesystem                        Inodes  IUsed  IFree IUse% Mounted on/dev/mapper/vg_linuxbase-lv_root 1806896 948754 858142   53% /Filesystem                        Inodes  IUsed  IFree IUse% Mounted on/dev/mapper/vg_linuxbase-lv_root 1806896 944613 862283   53% /Filesystem                        Inodes  IUsed  IFree IUse% Mounted on/dev/mapper/vg_linuxbase-lv_root 1806896 942619 864277   53% /Filesystem                        Inodes  IUsed  IFree IUse% Mounted on/dev/mapper/vg_linuxbase-lv_root 1806896 938510 868386   52% /

既然兩種方式差異不算大,那就根據(jù)需求或個人習(xí)慣選擇即可。我自己更傾向于使用方案二,因為這樣無需創(chuàng)建空目錄,操作上也更直觀。

最后再總結(jié)下刪除大量小文件的方法:???????

# 方案一:mkdir <空文件夾>rsync --delete-before -d <空文件夾> <需要清理刪除小文件的目錄># 方案二:find <需要清理刪除小文件的目錄> -type f -delete

相對來說這兩種方式都比較效率,但由于整體小文件也是比較多,所以實際可以選擇nohup放到后臺執(zhí)行。

原題:Linux如何刪除大量小文件文章來源地址http://www.zghlxwxcb.cn/news/detail-713962.html

到了這里,關(guān)于Linux 刪除大量小文件的兩種方案 | 運維進階的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Linux下通過 rm -f 刪除大量文件時報錯:Argument list too long

    Linux下通過 rm -f 刪除大量文件時報錯:Argument list too long

    Linux下通過 rm -f 刪除大量的小文件時出現(xiàn)類似如下錯誤信息: ? -bash: /bin/rm: Argument list too long 如下圖所示: 如果待刪除文件中包含的小文件數(shù)量過多,通常是由于受到 shell 參數(shù)個數(shù)限制所致。 這個是Linux系統(tǒng)存在的限制,可以通過如下指令查看該參數(shù)值的配置: 注: 刪除

    2024年02月13日
    瀏覽(19)
  • Linux內(nèi)核的兩種安全策略:基于inode的安全與基于文件路徑的安全

    在Linux中,一切皆為文件,實現(xiàn)系統(tǒng)安全的策略主要可分為兩種:基于 inode 的安全、基于文件路徑的安全。 基于inode的安全 為文件引入安全屬性,安全屬性不屬于文件內(nèi)容,它是文件的元數(shù)據(jù),應(yīng)該與 inode 關(guān)聯(lián),一些內(nèi)核安全模塊將安全屬性存儲在文件的擴展屬性中,這種

    2024年02月12日
    瀏覽(25)
  • Linux服務(wù)器上傳文件到阿里云oss對象存儲的兩種方法ossutil、curl

    Linux服務(wù)器上傳文件到阿里云oss對象存儲的兩種方法ossutil、curl

    ossutil支持在Windows、Linux、macOS等系統(tǒng)中運行,您可以根據(jù)實際環(huán)境下載和安裝合適的版本。 安裝過程中,需要使用解壓工具(unzip、7z)解壓軟件包,請?zhí)崆鞍惭b其中的一個解壓工具。 yum -y install unzip Linux系統(tǒng)一鍵安裝 sudo -v ; curl https://gosspublic.alicdn.com/ossutil/install.sh | sudo b

    2024年02月13日
    瀏覽(97)
  • 數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)系列之順序表的兩種刪除方式

    方式1: 在順序表的末端刪除所存儲的數(shù)據(jù)元素,代碼如下: 示例代碼: 注意事項: 1.形參傳入到具有刪除數(shù)據(jù)元素功能的函數(shù)后,需要做 入?yún)⒑侠硇詸z查 ; 2.還需要判斷此時 順序表所存儲的數(shù)據(jù)元素是否為空 ; 3. count是計數(shù)的變量 , 每次刪除一個數(shù)據(jù)元素后,需要減

    2024年02月10日
    瀏覽(44)
  • Java生成Echarts表圖的兩種方案

    Java生成Echarts表圖的兩種方案

    簡介 JFreeChart是JAVA平臺上的一個開放的圖表繪制類庫。它完全使用JAVA語言編寫,是為applications, applets, servlets 以及JSP等使用所設(shè)計。JFreeChart可生成餅圖(pie charts)、柱狀圖(bar charts)、散點圖(scatter plots)、時序圖(time series)、甘特圖(Gantt charts)等等多種圖表,并且可

    2024年02月16日
    瀏覽(21)
  • css——文字實現(xiàn)漸變色的兩種方案

    css——文字實現(xiàn)漸變色的兩種方案

    (一)通過設(shè)置color、background-image及background-clip實現(xiàn)文字顏色漸變 注意:如果使用的是塊級元素,記得加上 background-color: transparent 效果如下: (二)通過svg的linearGradient及text元素實現(xiàn)文字的顏色漸變 效果如下:

    2024年01月21日
    瀏覽(143)
  • 關(guān)于 Token 過期問題的兩種解決方案

    關(guān)于 Token 過期問題的兩種解決方案

    ?對于token過期,我們有兩種方案: ? 方案一:當(dāng)我們操作某個需要token作為請求頭的接口時,返回的數(shù)據(jù)錯誤error.response.status === 401,說明我們的token已經(jīng)過期了。 我們希望當(dāng)響應(yīng)返回的數(shù)據(jù)是401身份過期時,讓當(dāng)前瀏覽頁面強行跳轉(zhuǎn)到登入頁面,讓用戶 手動更新token。拿到

    2024年01月17日
    瀏覽(26)
  • error: (-215:Assertion failed)的兩種解決方案

    問題描述:在對視頻分幀讀取進行差值哈希算法比較時出現(xiàn)讀取錯誤現(xiàn)象,具體代碼內(nèi)容和報錯如下: 而在差值哈希算法運行前,均值哈希算法可以正常運行: 反復(fù)仔細(xì)觀察上述兩段代碼之后判斷是img圖片路徑讀取失敗,下方為兩種解決方法: 1. 刪除報錯語句的下方部分:

    2024年02月15日
    瀏覽(24)
  • 解決Windows Defender安全中心打開空白的兩種方案

    有網(wǎng)友加粉絲群詢問自己的 Windows 10 操作系統(tǒng)中的 Windows Defender 安全中心打開后出現(xiàn)頁面空白情況,而之前自己也沒有碰到過這種問題。既然問題來了,那就幫助找下解決方案,目前網(wǎng)絡(luò)上其實也有給出一些解決方案,絕大部分是通過注冊表方式來進行解決。不過有些網(wǎng)友表

    2024年02月10日
    瀏覽(25)
  • 無線路由器連接有線路由器的兩種方案

    無線路由器連接有線路由器設(shè)置 描述:無線路由器tp-link tl-wr841n 連接有線路由器tp-link(具體型號不清)下面的設(shè)置都是以這兩個路由器為例進行設(shè)置 目的:想從有線路由器接到無線路由器,實現(xiàn)無線上網(wǎng)功能 說明:無線連接有線兩種方案: 1.無線wan口連接有線lan口 2.無線lan口

    2024年02月07日
    瀏覽(29)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包