目錄下文件數(shù)據(jù)達(dá)到閾值時(shí)執(zhí)行刪除操作

當(dāng)文件夾下的文件數(shù)據(jù)達(dá)到閾值時(shí)執(zhí)行刪除操作,保留固定數(shù)量的文件,以此保證服務(wù)器的存儲(chǔ)健康。

  • shell腳本如下
#!/bin/bash
filepath="$1"
echo "${filepath}"
for line in $(ls -lrt ${filepath} |grep log|awk '{print $9}')
do
    name[${i}]=$line
    let i=${i}+1
done
listsize=${#name[@]}
echo "${listsize}"
n=0
if [ 30 -lt ${listsize} ]; then
 echo "日志文件已超過(guò)30個(gè),開(kāi)始執(zhí)行清理"
 for line in "${name[@]}"
 do
   shengxia=$(($listsize-$n))
   if [ ${shengxia} -gt 30 ]; then
     echo "即將刪除${line}"
     $(rm -rf ${filepath}/${line})
   fi
   n=$(($n+1))
 done
fi
  • 腳本執(zhí)行,假設(shè)腳本叫做clean_log.sh,路徑在/root
sh /root/clean_log.sh /opt/apps/logs

當(dāng)文件夾下個(gè)別文件大小超過(guò)xxG時(shí)執(zhí)行清空命令

  • shell腳本如下
#!/bin/bash
filepath="$1"
filesize="$2"
date=`date +%Y-%m-%d/%H:%M:%S`
echo ${date}" 入?yún)?${filepath}"文件大小限制"${filesize}
for line in $(du -sh ${filepath} |grep "G"|awk -F "G" '$1>"${filesize}" {print $2}')
do
    echo "文件"${line}"超過(guò)"${filesize}"G開(kāi)始清理"
    $(echo "" > $line)
    echo "文件清理完畢"
done  
  • 腳本執(zhí)行
auto_del_log.sh "/opt/apache-tomcat-9.0.33/logs/catalina.out" 30
  • crontab 配置每天凌晨1點(diǎn)執(zhí)行,清理兩種數(shù)據(jù):/opt/nginx/logs/目錄所有超過(guò)100G的文件,``/opt/apache-tomcat-9.0.33/logs/catalina.out"此文件超過(guò)30G時(shí)執(zhí)行清理
0 1 * * * sudo sh /opt/auto_del_log.sh "/opt/nginx/logs/*" 100  >>/opt/auto_del.log
0 1 * * * sudo sh /opt/auto_del_log.sh "/opt/apache-tomcat-9.0.33/logs/catalina.out" 30 >>/opt/auto_del.log
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容