Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1021817
  • 博文数量: 361
  • 博客积分: 25
  • 博客等级: 民兵
  • 技术积分: 1759
  • 用 户 组: 普通用户
  • 注册时间: 2012-09-22 23:18
个人简介

学海无涯 个人blog lnmps.com 新站

文章分类

全部博文(361)

文章存档

2017年(1)

2015年(2)

2014年(55)

2013年(303)

分类: LINUX

2013-04-02 17:17:13

原文地址:shell删除日志文件 作者:hechuanbing

注:待清除目录deldir,busidir代码已删除。

脚本功能:获取系统目录/applog使用量,判断是否在阀值下,超出阀值时进行相应的清理操作。清除按以下方法:满足清除条件时,删初始值为5天前的日志,若/applog达到阀值以下,停止清除,否则继续清除4天前的日志,依此类推.

#!/bin/bash
declare dir="/applog"
#/applog目录下按阀值清除
clean(){
  local interval=$1
  #find /home/dzyx/bill/drectory \(\(-name *\) -and -ctime +$interval\) -print -type d -exec rmdir {} \;
  local i
  for((i=0;i<${#deldir[@]};i++))
  do
  if [ -x ${deldir[$i]} ];then
  cd ${deldir[$i]}
  #find ./ -type d -ctime +$interval -name "*" -exec rm -rf {} \;
  find ./ -type d -ctime +$interval -name "*"|xargs rm -rf
  cd ../RunLogs
  find ./ -type d -ctime +$interval -name "*"|xargs rm -rf
  fi
  done
}
#busiprocess下清除非当天目录
cleanCpic(){
local i
for((i=0;i<${#busidir[@]};i++))
do
if [ -x ${busidir[$i]} ];then
cd ${busidir[$i]}
find ./ -type d -ctime +1 -name "*"|xargs rm -rf
fi
done
}
getsize(){
  local size=`df -h|grep $dir|awk '{print $4}' | tr -d '%'`
  return $size
}
getsize
declare -i use=$?
declare -i tag=5 #删除日期初始值
declare -i value=65 #applog目录阀值
echo "clearing files..."
while [ $use -ge $value -a $tag -ge 0 ]
do
if [ $tag -ge 1 ]
then
echo "usage:$use%,clernup :$tag days before"
clean $tag
fi
getsize
use=$?
((tag--))
done
#清理busiprocess,非当天目录
cleanCpic
getsize
use=$?
if [ $use -le $value ];then
echo "/applog 目录已经在阀值以下,当前值为:$use"
fi
exit 0


阅读(515) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~