代码之家  ›  专栏  ›  技术社区  ›  user2007861

在HDFS文件夹中查找旧文件

  •  0
  • user2007861  · 技术社区  · 7 年前

    我想在HDFS分区中查找旧文件(例如超过2小时)。 “-mmin”未被识别,您有其他想法吗?

    我的代码:

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

    返回:查找:意外参数:-mmin

    1 回复  |  直到 7 年前
        1
  •  0
  •   user2007861    7 年前

    我找到了一个解决方案:

    差异以分钟为单位。

    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