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