日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

通过rsync清除目录的shell脚本

發布時間:2025/4/5 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 通过rsync清除目录的shell脚本 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

由于工作原因,要管理一些圖片服務器,其中有幾臺是作為圖片存放的機器,每臺機器配有10T的硬盤,最近硬盤告急,都只剩下幾百個G,所以要刪除一些圖片。

目前服務器有一億多個文件,刪過這種大量的小碎文件的朋友一定知道使用rm -rf的下場,效果非常的差,基本上看不到什么效果。通過find命令帶delete的效果也不太好,后來使用了rsync將空目錄同步過去的方式,效果比較好,一天大概能清理出400G的空間。

為了保證并發的效果,寫了腳本充當守護進程

?

#!/bin/sh?#./delete.sh?get_dir_path_cmd?rsync_delete_cmd_process_total_count?#./delete.sh?"find?/data1/sinawapcms/htdocs/images/iask/2012/08/*??-maxdepth?0"???20?????rsync_path=rsync?empty_dir=/tmp/empty/??get_rsync_process_num()?{??????echo??$(ps?-ef?|?grep?rsync?|?grep?delete?|?wc?-l);?}??#$1?is?rsync?cmd?,?$2?is?rsync?total?process?num?do_rsync_cmd()?{?????while?test?1?=?1??????do?????????if?test??$(get_rsync_process_num)?-lt?$2??????????then?????????????($1?>/dev/null?2>&1?&);?????????????break;?????????else?????????????sleep?100;?????????fi??????done???????}?if?!?(?$rsync_path?--version?>?/dev/null?2>&1?)??then?????echo?rsync?path?error;?????exit?1;??fi??if?!?ls?-l?$empty_dir??>?/dev/null?2>&1?then?????if?!?mkdir?-p?$empty_dir?>/dev/null?2>&1?????then?????????echo?Permission?Denied,?make?sure?you?have?permission?to?mkdir?-p?/tmp/empty?;?????????????exit?3;?????fi?fi??if?!?test?$(?ls?-la?$empty_dir?|?wc?-l)?=?3?then?????echo??Directoty?\"$empty_dir\"?is?not?empty,?empty?directory??;??????printf?"Enter?(Y/N):";?????read?action?<?/dev/tty;??????if?test?$action?=?"Y"?||?test?$action?=?'y'?????then?????????if?!?rm?-rf?${empth_dir}/*?>/dev/null?2>&1??????????then?????????????echo?Permission?Denied,?make?sure?you?have?permission?to?rm?-rf?$empty_dir;?????????????exit?3;?????????fi??????else?????????echo?error,?Directoty?\"$empty_dir\"?is?not?empty;?????????exit?2;?????fi???fi???dir=$($1);?#rsync?--delete-before?-a?-H??/tmp/empty/???/data1/sinawapcms/htdocs/images/iask/2012/08/ff/??>/dev/null?&?for?i?in?$dir?do?????sleep?5;?????cmd="$rsync_path?--delete-before?-a?-H?$empty_dir?${i}/"?;?????(do_rsync_cmd?"$cmd"?$2);?done

調用方式:

./.sh????20??第一個參數用來獲取我們要清空的目錄?第二個參數限定并發數,防止服務器負載過高

本文出自 “邱凱的技術博客” 博客,請務必保留此出處http://xdebug.blog.51cto.com/1135229/1067241


總結

以上是生活随笔為你收集整理的通过rsync清除目录的shell脚本的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。