zookeeper文件删除脚本

脚本适用于linux服务器各种场景下的文件清理,这里以zk为例,其他场景类似。

清理逻辑:当某磁盘空间使用率高于70%的时候,保留目标目录下50个最新文件,删除其他文件。

#!/bin/bash


#设置保留个数
retainSnapCount=50
retainLogCount=50


#获取磁盘使用率
usePercent=$(df -h /mydir/ | grep "/mydir" | awk '{print $5}' | awk -F'%' '{print $1}')


#获取目标目录当前文件个数
snapshotCount=$(/bin/find /mydir/data/zookeeper/version-2/ -name 'snapshot.*' -type f | wc -l)
logCount=$(/bin/find /mydir/log/zookeeper/version-2/ -name 'log.*' -type f | wc -l)


#计算删除的文件个数
delSnapCount=$((snapshotCount-retainSnapCount))
delLogCount=$((logCount-retainLogCount))


#获取删除的文件列表
fDelData()
{
	/bin/find /mydir/data/zookeeper/version-2/ -name 'snapshot.*' -type f | xargs ls -t | tail -$delSnapCount > /tmp/zkDelFile.txt
#	/bin/find /mydir/data/zookeeper/version-2/ -name 'snapshot.*' -type f | xargs ls -t | tail -$delSnapCount | xargs /bin/rm -f
}


#获取删除的文件列表
fDelLog()
{
	/bin/find /mydir/log/zookeeper/version-2/ -name 'log.*' -type f | xargs ls -t | tail -$delLogCount  >> /tmp/zkDelFile.txt
#	/bin/find /mydir/log/zookeeper/version-2/ -name 'log.*' -type f | xargs ls -t | tail -$delLogCount | xargs /bin/rm -f
}


#删除文件
delFile(){
	while read file ; do rm -f $file ; done < /tmp/zkDelFile.txt
}



if [ $usePercent -gt "70" ]
then
	fDelData
	fDelLog
	delFile
else
	now=$(date "+%Y-%m-%d %H:%M:%S")
	echo "$now  Nothing to do..." >> /tmp/zkClear.log
	exit 0
fi

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值