shell脚本案例(二):HDFS文件定期清理

为了解决HDFS空间使用率达到95%的问题,本文介绍了如何编写一个Shell脚本,实现当HDFS使用率超过阈值时,自动清理最早5天的日志文件。脚本主要涉及查询HDFS使用率,排序并删除旧文件,其中需要注意hdfs dfs rm命令的-skipTrash参数用于直接永久删除文件。
摘要由CSDN通过智能技术生成

当前环境的HDFS的空间使用率,即将达到95%,手动清理比较繁琐,需要写个脚本定期清理下最早5天的日志量。方法之一:


案例

定期检查hdfs的空间占用率,若超过95%,则删除最早5天的日志文件。

解决思路

  1. 设定使用率阈值
  2. 查询当前使用率,若达到阈值,查找出最早5天的文件
  3. 将查找到的文件删除

问题

  1. Linux shell可以用find通过时间来查找文件,但hdfs shell 的find参数似乎不能用时间来查找。因此需要先将dfs ls下的文件进行时间排序。就可以找出最早的文件了.
  2. hdfs dfs rm用来删除文件,这个命令是将文件移动到回收站,回收站同样占用空间。使用-skipTrash参数可以直接永久删除。

脚本编写

#!/bin/bash
# 检查dfs磁盘空间,清理过期日志

day=5
limit=95

basedir=/app/applogs
logfile=/app/scripts/logs/clear_hdfs_logs.log


logger(){
  msg=$1
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值