linux服务器利用rsync快速删除大量小文件方法
生活随笔
收集整理的這篇文章主要介紹了
linux服务器利用rsync快速删除大量小文件方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
當我們在linux系統中要刪除數萬或者數十萬甚至數百萬的文件時使用rm -rf *就不太好用,因為要等待很長一段時間。在這種情況之下我們可以使用linux系統命令rsync來巧妙的處理。rsync實際上用的是替換原理,處理數十萬個文件也是秒刪。
1.?rsync安裝,有些系統默認安裝有該命令
其他的可以源碼安裝,到下面的網站下載ubuntu系統:sudo apt-get install rsync fedora 系統:sudo yum install rsync centos系統:?yum? -y? install? rsync
http://rsync.samba.org
Rsync選項
-v # verbose 詳細模式輸出 -q # quiet 精簡輸出模式。 -c # checksum 打開校驗開關,強制對文件傳輸進行校驗 -a # archive 歸檔模式,以遞歸的方式傳輸文件,并保持所有文件屬性,(-a = -rlptgoD) -r # recursive 對子目錄以遞歸模式處理 -R # relative 保留相對路徑信息 -b # backup 創建備份,也就是對于目的已經存在有同樣的文件名時,將老的文件重新命名為~filename。可以使用--suffix選項來指定不>同的備份文件前綴 --backup-dir # 將備份文件(如~filename)存放在在目錄下 -suffix=SUFFIX # 定義備份文件前綴 -u # update 僅進行更新,也就是跳過所有已經存在于DST(目標主機),并且文件時間晚于要備份的文件,不覆蓋更新的文件 -l # links 保留軟鏈接 -L # copy-links 想對待常規文件一樣處理軟鏈接 --copy-unsafe-links # 僅僅拷貝指向SRC(源主機)路徑目錄樹以外的鏈結 --safe-links # 忽略指向SRC(源主機)路徑目錄樹以外的鏈結 -H # hard-links 保留硬鏈結 -p # perms 保留文件權限 -t # times 保持文件時間信息 -g # group 保持文件屬組信息 -o # owner 保持文件屬主信息 -D # devices 保持設備文件信息,表示支持b,c,s,p類型的文件 -A # 保留acl(訪問控制權限)權限 -S # sparse 對稀疏文件進行特殊處理以節省DST(目標主機)的空間 -n # dry-run 現實哪些文件將被傳輸。 -w # whole-file 拷貝文件,不進行增量檢測 -x # one-file-system 不要跨越文件系統邊界 -B # block-size=SIZE 檢驗算法使用的塊尺寸,默認是700字節 -e # rsh=command 指定使用rsh、ssh方式進行數據同步 --rsync-path=PATH # 指定遠程服務器上的rsync命令所在路徑信息 -C # cvs-exclude 使用和CVS一樣的方法自動忽略文件,用來排除那些不希望傳輸的文件 --existing # 僅僅更新那些已經存在于DST(目標主機)的文件,而不備份那些新創建的文件 --delete # 刪除那些DST(目標主機)中SRC(源主機)沒有的文件 --delete-excluded # 同樣刪除接收端那些被該選項指定排除的文件 --delete-after # 傳輸結束以后再刪除 --ignore-errors # 及時出現IO錯誤也進行刪除 --max-delete=NUM # 最多刪除NUM個文件 --partial # 保留那些因故沒有完全傳輸的文件,以是加快隨后的再次傳輸 --force # 強制刪除目錄,即使不為空 --numeric-ids # 不將數字的用戶和組id匹配為用戶名和組名 --timeout=time ip # 超時時間,單位為秒 -I # ignore-times 不跳過那些有同樣的時間和長度的文件 --size-only # 當決定是否要備份文件時,僅僅察看文件大小而不考慮文件時間 --modify-window=NUM # 決定文件是否時間相同時使用的時間戳窗口,默認為0 -T # temp-dir=DIR 在DIR中創建臨時文件 --compare-dest=DIR # 同樣比較DIR中的文件來決定是否需要備份 -P # 等同于 --partial --progress # 顯示備份過程 -z # compress 對備份的文件在傳輸時進行壓縮處理 --exclude # 指定不傳輸的文件 --exclude=PATTERN # 指定排除不需要傳輸的文件模式 --include=PATTERN # 指定不排除而需要傳輸的文件模式 --exclude-from=FILE # 排除FILE中指定模式的文件 --include-from=FILE # 不排除FILE指定模式匹配的文件 --version # 打印版本信息 --address # 綁定到特定的地址 --config=FILE # 指定其他的配置文件,不使用默認的rsyncd.conf文件 --port=PORT # 指定其他的rsync服務端口 --blocking-io # 對遠程shell使用阻塞IO -stats # 給出某些文件的傳輸狀態 --progress # 在傳輸時現實傳輸過程 --log-format=formAT # 指定日志文件格式 --password-file=FILE # 從FILE中得到密碼 --bwlimit=KBPS # 限制I/O帶寬,KBytes per second -h # help 顯示幫助信息
2. 啟動rsync服務
# systemctl restart rsyncd.service --重新啟動rsync服務
# netstat -ntlp | grep rsync --查看監聽rsync服務的端口
3.使用以下命令刪除目標目錄
#先創建一個空目錄
mkdir /tmp/null
rsync --delete-before -d /tmp/null/ /目標目錄路徑Path/
# 使用 rsync的 --delete-before 參數刪除
# 這個過程是遞進的,刪除的文件速度會越來越快
# 也可以使用以下命令
rsync -a --delete /tmp/null/ /目標目錄路徑Path/
參考資料:
https://blog.51cto.com/13525470/2063052
http://www.cnblogs.com/linxiyue/p/3536925.html
https://blog.csdn.net/wzqzhq/article/details/70225284
總結
以上是生活随笔為你收集整理的linux服务器利用rsync快速删除大量小文件方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 免费获取wrapBootstrap模板的
- 下一篇: 2019年春节院线电影《小猪佩奇过大年》