Chinaunix首页 | 论坛 | 博客
  • 博客访问: 149208
  • 博文数量: 39
  • 博客积分: 2075
  • 博客等级: 大尉
  • 技术积分: 420
  • 用 户 组: 普通用户
  • 注册时间: 2010-01-26 15:55
文章分类

全部博文(39)

文章存档

2014年(5)

2013年(1)

2012年(1)

2011年(12)

2010年(24)

我的朋友

分类: LINUX

2011-02-10 16:37:39

注:待清除目录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


阅读(2365) | 评论(1) | 转发(1) |
0

上一篇:又来了

下一篇:链表

给主人留下些什么吧!~~

chinaunix网友2011-03-05 13:44:20

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com