X-Git-Url: https://git.rrq.au/?a=blobdiff_plain;f=sss.sh;h=46facf989e0e4092283c3e90b6b4b236e015bfcd;hb=15f7939da7dbdeb613164b4e4d327eaf1b94193a;hp=fbda5db03cfe17bef2206a056316e81da71212cc;hpb=a546fe72f797dc756315d69395eae829f3e05dbd;p=rrq%2Fnilfs2sss.git diff --git a/sss.sh b/sss.sh index fbda5db..46facf9 100755 --- a/sss.sh +++ b/sss.sh @@ -34,35 +34,35 @@ YEARLY="$(date -d '-1 year' '+%Y-%m-%d %H:%M:%S')" MARK=( ) function marksnap() { if [[ "${MARK[0]}" == "$1" ]] && [[ "${MARK[1]}" = "$2" ]] ; then - chcp cp $DEV ${MARKYEAR[2]} + chcp cp $DEV ${MARK[2]} fi - MARK=( "$1" "$2" $3 ) -fi + MARK=( "$1" "$2" "$3" ) +} { flock 9 -date "+$DEV: %Y-%m-%d %H:%M:%S ---- checking" >&2 -lscp -s $DEV | while read CNO DATE TIME REST ; do - TS="$DATE $TIME" - [ "$CNO" = "CNO" ] && continue - if [[ "$TS" > "$YEARLY" ]] ; then - marksnap YEAR "${DATE:0:4}" $CNO - elif [[ "$TS" > "$MONTHLY" ]] - marksnap MONTH "${DATE:5:2}" $CNO - elif [[ "$TS" > "$WEEKLY" ]] - # For older than most recent week, keep last snapshot each week - marksnap WEEK "$(( 7${DATE:8:2} / 7 - 100 ))" $CNO - elif [[ "$TS" > "$DAILY" ]] - marksnap DAY "${DATE:8:2}" $CNO - elif [[ "$TS" > "$HOURLY" ]] - marksnap HOUR "${DATE:8:2}-${TIME:0:2}" $CNO - else - echo "$CNO $DATE $TIME within last hour" - fi -done | if read X ; then - : # snapshot within last hour -else - date "+$DEV: new snapshot at %Y-%m-%d %H:%M:%S" >&2 - mkcp -s $DEV -fi + date "+$DEV: %Y-%m-%d %H:%M:%S ---- checking" >&2 + lscp -s $DEV | while read CNO DATE TIME REST ; do + TS="$DATE $TIME" + [ "$CNO" = "CNO" ] && continue + if [[ "$TS" < "$YEARLY" ]] ; then + marksnap YEAR "${DATE:0:4}" $CNO + elif [[ "$TS" < "$MONTHLY" ]] ; then + marksnap MONTH "${DATE:5:2}" $CNO + elif [[ "$TS" < "$WEEKLY" ]] ; then + # For older than most recent week, keep last snapshot each week + marksnap WEEK "$(( 7${DATE:8:2} / 7 - 100 ))" $CNO + elif [[ "$TS" < "$DAILY" ]] ; then + marksnap DAY "${DATE:8:2}" $CNO + elif [[ "$TS" < "$HOURLY" ]] ; then + marksnap HOUR "${DATE:8:2}-${TIME:0:2}" $CNO + else + echo "$CNO $DATE $TIME within last hour" + fi + done | if read X ; then + : # snapshot within last hour + else + date "+$DEV: new snapshot at %Y-%m-%d %H:%M:%S" >&2 + mkcp -s $DEV + fi } 9> /var/run/lock/sss.lock