xref: /dflybsd-src/bin/cpdup/scripts/do_cleanup (revision 86d7f5d305c6adaa56ff4582ece9859d73106103)
186d7f5d3SJohn Marino#!/bin/csh
286d7f5d3SJohn Marino#
386d7f5d3SJohn Marino# $DragonFly: src/bin/cpdup/scripts/do_cleanup,v 1.1 2006/09/16 21:57:10 dillon Exp $
486d7f5d3SJohn Marino
586d7f5d3SJohn Marinosource params
686d7f5d3SJohn Marino
786d7f5d3SJohn Marinoif ( "$argv" == "" ) then
886d7f5d3SJohn Marino	echo "./do_cleanup percentage"
986d7f5d3SJohn Marino	exit 1
1086d7f5d3SJohn Marinoendif
1186d7f5d3SJohn Marino
1286d7f5d3SJohn Marinoset full = $argv[1]
1386d7f5d3SJohn Marino
1486d7f5d3SJohn Marinowhile (1)
1586d7f5d3SJohn Marino    set dcap = `df -i $cleaning_path | tail -1 | awk '{ print $5; }' | sed -e 's/%//'`
1686d7f5d3SJohn Marino    set icap = `df -i $cleaning_path | tail -1 | awk '{ print $8; }' | sed -e 's/%//'`
1786d7f5d3SJohn Marino    echo "space $dcap/$full inodes $icap/$full"
1886d7f5d3SJohn Marino
1986d7f5d3SJohn Marino    if ( $dcap < $full && $icap < $full ) then
2086d7f5d3SJohn Marino	break
2186d7f5d3SJohn Marino    endif
2286d7f5d3SJohn Marino
2386d7f5d3SJohn Marino    foreach i ( ${backup_nfs}/* )
2486d7f5d3SJohn Marino	set host = ${i:t}
2586d7f5d3SJohn Marino	if ( ! -d $backup_nfs/$host ) then
2686d7f5d3SJohn Marino	    continue
2786d7f5d3SJohn Marino	endif
2886d7f5d3SJohn Marino	set curbackup = `readlink $cleaning_path/mirrors/$host`
2986d7f5d3SJohn Marino	foreach item ( `ls -1da $cleaning_path/mirrors/$host.*` )
3086d7f5d3SJohn Marino	    if ( ! -d $item ) then
3186d7f5d3SJohn Marino		continue
3286d7f5d3SJohn Marino	    endif
3386d7f5d3SJohn Marino	    if ( "${item:t}" == "$curbackup" ) then
3486d7f5d3SJohn Marino		continue
3586d7f5d3SJohn Marino	    endif
3686d7f5d3SJohn Marino	    echo "Removing $item"
3786d7f5d3SJohn Marino	    # for safety, use a full path and do not rely on item's path
3886d7f5d3SJohn Marino	    #
3986d7f5d3SJohn Marino	    rm -rf $cleaning_path/mirrors/${item:t}
4086d7f5d3SJohn Marino	    break
4186d7f5d3SJohn Marino	end
4286d7f5d3SJohn Marino    end
4386d7f5d3SJohn Marino
4486d7f5d3SJohn Marino    # let the fs catch up and update the df info
4586d7f5d3SJohn Marino    #
4686d7f5d3SJohn Marino    sync
4786d7f5d3SJohn Marino    sync
4886d7f5d3SJohn Marino    foreach benice ( 1 2 3 4 5 )
4986d7f5d3SJohn Marino	sync
5086d7f5d3SJohn Marino	sleep 5
5186d7f5d3SJohn Marino    end
5286d7f5d3SJohn Marino    sync
5386d7f5d3SJohn Marino    sync
5486d7f5d3SJohn Marinoend
55