在HDFS文件夹中查找旧文件

时间:2017-12-14 10:16:19

标签: shell hdfs

我想在HDFS分区中找到旧文件(例如超过2小时)。 " -mmin"不被承认,你有另一个想法吗?

我的代码:

hdfs dfs -find /user/TEST/REP -name "*.log.*" -mmin +120

返回:find:意外的参数:-mmin

1 个答案:

答案 0 :(得分:0)

我找到了解决方案:

差异在几分钟内。

now=$(date +%s)
# Loop in ls result (remove first line like "Found 6 items")
hdfs dfs -ls $PATH_TO_CHECK | grep -v "Found" | while read f; do 
  file_date=$(echo $f | awk '{print $6}')
  file_time=$(echo $f | awk '{print $7}')

  difference=$(( ( $now - $(date -d "$file_date $file_time" +%s) ) / (60) ))

  if [[ "$difference" -gt "$MAX_DURATION" ]]; then
    echo "KO"
  else
    echo "OK"
  fi