home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
norge.freeshell.org (192.94.73.8)
/
192.94.73.8.tar
/
192.94.73.8
/
pub
/
computers
/
3b2
/
lightenfs
< prev
next >
Wrap
Text File
|
1985-05-23
|
1KB
|
94 lines
# @(#)lightenfs 1.2 /sccs/src/cmd/sadmin/shell/s.lightenfs
# "lighten the ship" routine to clean up file systems
#! chmod +x ${file}
set -- `getopt d:lt:v "$@"` || exec $0
days=4
listonly=
threshold=4000
verbose=
for flag
{
case "${flag}" in
-d )
days=$2
shift
;;
-l )
listonly=yes
;;
-t )
threshold=$2
shift
;;
-v )
verbose=yes
;;
-- )
shift
break
;;
-* )
admerr $0 "Bad flag argument '${flag}'."
exit
;;
* )
continue
esac
shift
}
if [ $# -ne 2 ]
then
echo >&2 "Usage: $0 [-d<days>] [-t<threshold>] [-v] [-l] filesystem patternfile
For more detail type: prtdoc syscmd.`basename $0`"
exit 1
fi
fs=$1
patternfile=$2
blocks=`expr "\`df ${fs}\`" : '.*[^0-9]\([0-9]\{1,\}\) blocks '`
if [ ${blocks} -ge ${threshold} ]
then
if [ ${verbose} ]
then
echo ${blocks} blocks greater than threshold ${threshold}
fi
exit 0
fi
if [ ${verbose} ]
then
echo ${blocks} blocks free, need ${threshold}
fi
patterns=`sed 's/.*/\\\\;&;p/' ${patternfile}`
find ${fs} -type f -mtime +${days} -print 2>/dev/null |
sed -n "${patterns}" |
xargs ls -tr |
while read f
do
if [ ${listonly} ]
then
echo ${f}
continue
fi
rm -f ${f}
blocks=`expr "\`df ${fs}\`" : '.*[^0-9]\([0-9]\{1,\}\) blocks '`
if [ ${verbose} ]
then
echo rm ${f} -- now ${blocks} blocks free
fi
if [ ${blocks} -ge ${threshold} ]
then
if [ ${verbose} ]
then
echo Threshold met.
fi
# swallow the rest of the ls
cat >/dev/null
exit 0
fi
done