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}
\rm -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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM