скрипт для проверки последнего обновления каталога - PullRequest
0 голосов
/ 30 января 2020

Я пытаюсь написать скрипт, который принимает дату последнего обновления пути oop, вычитает его из текущей даты и отправляет электронное письмо, если разница превышает определенное количество дней (переменная). Это необходимо в l oop через файл конфигурации с разделителями канала, который содержит количество дней, имя таблицы, oop путь и адрес электронной почты

пример файла конфигурации

30|db.big_leasing_center|/TST/DL/EDGE_BASE/GFDCP-52478/BIG_LEASING_CENTER/Data/|abcd@gmail.com

2|db.event|/TST/DL/EDGE_BASE/GFDCP-52478/GFDCP01P-ITG_FIN_DB/EVENTS/Data/|cab@gmail.com

ниже - это то, что Я пытался

#!/bin/ksh

check_last_refresh() {



                DAYS=$1
                TABLE=$2
                HDP_PATH=$3
                EMAIL_DL=$4
                last_refresh_date=$(hdfs dfs -ls $HDP_PATH | grep '^-' | awk '{print $6}' | sort -rh | head -1)

                echo $last_refresh_date

          diff=$(( ( $(date '+%s') - $(date '+%s' -d "$last_refresh_date") ) / 86400 ))

           echo $diff

              if [ "$diff" -gt "$DAYS" ]; then

             echo "HI for $TABLE has an issue" | mail -s "HI for $TABLE has an issue, Please check" -b  $EMAIL_DL

            fi
     return 0

}


cat /data/scratchSpace/bznhd9/CONFIG.txt | while read line; do
                DAYS=$(echo $line|awk -F'|' '{print $1}')
                TABLE=$(echo $line|awk -F'|' '{print $2}')
                HDP_PATH=$(echo $line|awk -F'|' '{print $3}')
                EMAIL_DL=$(echo $line|awk -F'|' '{print $4}')

          echo $TABLE
                r=$(check_last_refresh $DAYS $TABLE $HDP_PATH $EMAIL_DL)
        echo $r
done

Пожалуйста, помогите

...