Seasons.NET

ちょっとした技術ブログです

SVNのHotbackupの古いデータを消すスクリプト

subversionでhotbackup.py実行にできるバックアップデータを
古くなったら消したい!!
ということで作成しました。このスクリプト。

カレントディレクトリ内で、現在の日付より、?日古いディレクトリは、削除します。

実際の使い方は、このスクリプトを deletedb.rbとかで保存して、

$ ruby deletedb.rb | xargs rm -fR

とかで、xargsに標準出力に出力されたディレクトリ渡し、rmで消します。

 1 
 2 $KCODE = 'u'
 3 
 4 class String
 5 
 6     def to_minites
 7         minus = 1; minus = -1 if self.to_i < 0
 8         value = self.to_i.abs
 9         return ( value / 60 * minus ).to_s
10     end
11 
12     def to_hour
13         minus = 1; minus = -1 if self.to_i < 0
14         value = self.to_i.abs
15         return ( value / 60 / 60 * minus ).to_s
16     end
17 
18     def to_day
19         minus = 1; minus = -1 if self.to_i < 0
20         value = self.to_i.abs
21         return (value / 60 / 60 / 24 * minus).to_s
22     end
23 
24 end
25 
26 if $0 == __FILE__
27     # delete target directory diff day
28     DIFFDAY_VALUE = -3
29 
30     Dir.foreach( Dir.pwd ) do |dir|
31         if File.directory?( dir )
32             next if dir=="." || dir==".."
33 
34             diff = ( File.mtime( dir ) - Time.now ).to_s
35             if diff.to_day.to_i <= DIFFDAY_VALUE
36                 # Show Path
37                 p Dir.pwd + File::Separator + dir
38             end
39         end
40     end
41 end
42