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
    评论
Zookeeper是一个分布式协调服务,它提供了一种分布式的同步原语,可以用于协调分布式应用程序的进程。在Zookeeper中,数据被组织成一个类似于文件系统的层次结构,并且可以使用Zookeeper API对其进行操作。 以下是一些常见的Zookeeper操作: 1. 启动和停止Zookeeper服务器:使用zkServer.sh脚本可以启动和停止Zookeeper服务器。例如,要启动Zookeeper服务器,可以使用以下命令: ``` $ zkServer.sh start ``` 2. 创建Znode:使用Zookeeper API可以创建一个新的Znode。例如,要创建一个名为“/myapp”的Znode,可以使用以下命令: ``` $ create /myapp ``` 3. 读取Znode:使用Zookeeper API可以读取一个Znode的内容。例如,要读取名为“/myapp”的Znode的内容,可以使用以下命令: ``` $ get /myapp ``` 4. 更新Znode:使用Zookeeper API可以更新一个Znode的内容。例如,要将名为“/myapp”的Znode的内容更新为“hello world”,可以使用以下命令: ``` $ set /myapp hello world ``` 5. 监视Znode:使用Zookeeper API可以监视一个Znode的变化。例如,要监视名为“/myapp”的Znode的变化,可以使用以下命令: ``` $ get /myapp true ``` 6. 删除Znode:使用Zookeeper API可以删除一个Znode。例如,要删除名为“/myapp”的Znode,可以使用以下命令: ``` $ delete /myapp ``` 以上是一些常见的Zookeeper操作,使用这些操作可以对Zookeeper中的数据进行管理和控制。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值