shell脚本自动删除老文件

根据磁盘使用率,删除日期较老的文件

#!/bin/bash
#设置磁盘使用比例
max_size=18
#设置文件存储目录
tmp_data=/root/
#文件日志前缀
pre_file=test
#数组长度
arr_len=0
#获取磁盘使用比率
a=0
int=0
#删除文件名
tmp_del=''
#删除文件名绝对路径
full_del=''
#删除日志存储
del_log=del_log.txt

#检测磁盘使用情况
function is_del(){
a=`df -h / | tail -n 1 | awk '{print $5}'`
int=`echo $a | cut -d '%' -f 1`
if [ ${int} -gt ${max_size} ];then
    echo ">>";
    return 0;
elif [ ${int} -lt ${max_size} ];then
    echo "<<";
    return 1;
fi
}

#删除日志文件,并写入到删除日志
function del_name(){

for i in `ls | grep ${pre_file} `; 
do 
    arr[${arr_len}]=`echo $i|sed "s/${pre_file}//"`; 
#    echo `echo $i|sed "s/${pre_file}//"`; 
    arr_len=`expr ${arr_len}+1 `
done

tmp_del=`echo ${arr[*]} |xargs -n1 | sort -n  | head -n 1`
full_del=${tmp_data}${pre_file}${tmp_del}

m -f ${full_del}
if [ $? -eq 0 ];then
    echo `date '+%Y-%m-%d %T' ` ${full_del}"已被删除" >> ${tmp_data}${del_log};
else
    echo `date '+%Y-%m-%d %T' ` ${full_del}"删除失败" >> ${tmp_data}${del_log};
fi
}

#主函数
function main()
{
	is_del;
	if [ $? -eq 0 ];then
	del_name;	
	fi
}

main

shell脚本自动删除老文件