#!/bin/bash

设置 HDFS bin 目录路径

HADOOP_HOME='/usr/local/hadoop/bin'

设置要清理的 HDFS 目录路径

HDFS_DIR='/user/hadoop/tmp'

设置保留文件的最大天数

DAYS_TO_KEEP=7

获取当前时间戳

CURRENT_TIME=$(date +%s)

将天数转换为秒

SECONDS_TO_KEEP=$((DAYS_TO_KEEP * 86400))

计算要保留的最旧文件的时间戳

OLDEST_TIME=$((CURRENT_TIME - SECONDS_TO_KEEP))

删除指定天数之前创建的文件

$HADOOP_HOME/hdfs dfs -ls -R $HDFS_DIR | grep -e '^-.*' | awk '{print $6" "$7" "$8" "$9}' | while read line ; do file_time=$(date -d "$(echo $line | awk '{print $1" "$2" "$3}')" +%s) if [[ $file_time -lt $OLDEST_TIME ]] ; then file_path=$(echo $line | awk '{print $4}') $HADOOP_HOME/hdfs dfs -rm -r -skipTrash $file_path echo 'Deleted file: '$file_path fi done echo 'HDFS cleanup complete.'

HDFS 定时清理 Shell 脚本 - 自动删除旧文件

原文地址: https://www.cveoy.top/t/topic/nu5t 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录