HDFS批量清理过期目录

#!/bin/bash
source ~/.bashrc

#HADOOP所在的bin目录
HADOOP_BIN_PATH=/opt/cloudera/parcels/CDH/bin

#待检测的HDFS目录
d1=/tmp1/flink

#将待检测的目录(可以为多个)加载至数组中
array_check=($d1)

#过期日期
m1=$(date -d “-30 days” +“%Y%m%d”)

#Func: 删除指定时间之前的过期
removeOutDate(){
echo $m1
$HADOOP_BIN_PATH/hdfs dfs -ls /tmp1/flink// |grep -E “^d” | awk -F ‘/’ -v a=$m1 ‘$5<a {print $0," ",$5}’ > tmp1dir
echo “ls dir completed!”
# 管道输入重定向: cat $FILENAME | while read 。。。 quanxian temp 将读取出来的一行拆分成各个参数使用!
cat tmp1dir | while read quanxian temp user group size day hour filepath filedate
do
echo f i l e d a t e i f [ [ " filedate if [[ " filedateif[["filedate" == 20
]];then
echo “deltime: ( d a t e + ′ (date +'%Y-%m-%d %H:%M:%S') fileinfo: (date+filepath” >> deldirlog
#$HADOOP_BIN_PATH/hdfs dfs -rm -r $filepath > /dev/null 2>&1
fi
done
}

#Func: 执行删除
execute(){
echo -e “\n\n”
echo “ ( d a t e + ′ e c h o " (date +'%Y-%m-%d %H:%M:%S') start to remove outdate files in hdfs" echo " (date+echo"(date +‘%Y-%m-%d %H:%M:%S’) today is: $(date +”%Y-%m-%d %H:%M:%S")"

    for i in ${array_check[@]}
    do
        echo "$(date +'%Y-%m-%d %H:%M:%S') processing filepath: $i"
        removeOutDate $i
        echo -e "\n"
    done

    echo "$(date +'%Y-%m-%d %H:%M:%S') remove outdate files in hdfs finished"
    echo -e "\n\n"

}

#开始执行
execute

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值