您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

schedule_meteor.sh 1.8 KiB

123456789101112131415161718192021222324252627282930313233343536
  1. #!/bin/bash
  2. ## import common lib
  3. . "$HOME/.noaa.conf"
  4. . "$NOAA_HOME/common.sh"
  5. PREDICTION_START=$(/usr/bin/predict -t "${NOAA_HOME}"/predict/weather.tle -p "${1}" | head -1)
  6. PREDICTION_END=$(/usr/bin/predict -t "${NOAA_HOME}"/predict/weather.tle -p "${1}" | tail -1)
  7. var2=$(echo "${PREDICTION_END}" | cut -d " " -f 1)
  8. MAXELEV=$(/usr/bin/predict -t "${NOAA_HOME}"/predict/weather.tle -p "${1}" | awk -v max=0 '{if($5>max){max=$5}}END{print max}')
  9. while [ "$(date --date="@${var2}" +%D)" = "$(date +%D)" ]; do
  10. log "Pass prediction in progress" "INFO"
  11. START_TIME=$(echo "$PREDICTION_START" | cut -d " " -f 3-4)
  12. var1=$(echo "$PREDICTION_START" | cut -d " " -f 1)
  13. var3=$(echo "$START_TIME" | cut -d " " -f 2 | cut -d ":" -f 3)
  14. TIMER=$(expr "${var2}" - "${var1}" + "${var3}")
  15. OUTDATE=$(date --date="TZ=\"UTC\" ${START_TIME}" +%Y%m%d-%H%M%S)
  16. if [ "${MAXELEV}" -gt "${METEOR_MIN_ELEV}" ]; then
  17. log "Pass is above ${METEOR_MIN_ELEV}, that is OK for me" "INFO"
  18. SATNAME=$(echo "$1" | sed "s/ //g")
  19. echo "${SATNAME}" "${OUTDATE}" "$MAXELEV"
  20. echo "${NOAA_HOME}/receive_meteor.sh \"${1}\" $2 ${SATNAME}${OUTDATE} "${NOAA_HOME}"/predict/weather.tle \
  21. ${var1} ${TIMER} ${MAXELEV}" | at "$(date --date="TZ=\"UTC\" ${START_TIME}" +"%H:%M %D")"
  22. sqlite3 /home/pi/raspberry-noaa/panel.db "insert or replace into predict_passes (sat_name,pass_start,pass_end,max_elev) values (\"$SATNAME\",$var1,$var2,$MAXELEV);"
  23. fi
  24. NEXTPREDICT=$(expr "${var2}" + 60)
  25. PREDICTION_START=$(/usr/bin/predict -t "${NOAA_HOME}"/predict/weather.tle -p "${1}" "${NEXTPREDICT}" | head -1)
  26. PREDICTION_END=$(/usr/bin/predict -t "${NOAA_HOME}"/predict/weather.tle -p "${1}" "${NEXTPREDICT}" | tail -1)
  27. MAXELEV=$(/usr/bin/predict -t "${NOAA_HOME}"/predict/weather.tle -p "${1}" "${NEXTPREDICT}" | awk -v max=0 '{if($5>max){max=$5}}END{print max}')
  28. var2=$(echo "${PREDICTION_END}" | cut -d " " -f 1)
  29. done