Flink 清除过期Checkpoints目录文件

1.创建shell脚本/flink/flink_checkpoint_clear.sh

#!/bin/bash

# hdfs目录
HDFS='/hadoop/hadoop-2.9.1/bin/hdfs dfs -ls /flink/checkpoints'
# 删除N天前的hdfs目录
N=3
# 删除脚本
DELETE='/hadoop/hadoop-2.9.1/bin/hdfs dfs -rm -r'


# 生产使用
old_version=$($HDFS | awk 'BEGIN{ days_ago=strftime("%F", systime()-'$N'*24*3600) }{ if($6<=days_ago){printf "%s\n", $8} }')
arr=(${old_version// / })
for version in ${arr[@]}
do
 $DELETE $version
done


# 测试校验日期(一定要先测试删除时间的正确性)
#old_version=$($HDFS | awk 'BEGIN{ days_ago=strftime("%F", systime()-'$N'*24*3600) }{ if($6<=days_ago){printf "%s\n", $6} }')
#arr=(${old_version// / })
#for version in ${arr[@]}
#do
#echo $version
#done

2. 使用crontab定期删除

 # 每晚 23点执行
00 23 * * *  /flink/flink_checkpoint_clear.sh

你可能感兴趣的:(Flink,linux,flink)