#
# The cron bot is expected to run once a minute
+# Name of snapshot tag file for "important" snapshots. Format:
+# $CNO .... one line for each $CNO that should be preserved as snapshot
+# chcp ss $CNO && echo $CNO >> $NAMELIST
+NAMELIST=/etc/nilfs2sss.list
+
# The hour-of-day to preserve as daily snapshot
KEEPHH=12
KEEPDD=15
DEV=$1
+[ "$2" = "all" ] || LSCP="-s"
+
if [ -z "$DEV" ] ; then
DEVS=( $( mount | grep nilfs2 | sed 's/ .*//' ) )
DEV=${DEVS[0]}
MARK=( )
function marksnap() {
if [[ "${MARK[0]}" == "$1" ]] && [[ "${MARK[1]}" = "$2" ]] ; then
- chcp cp $DEV ${MARK[2]}
+ if [ -r "$NAMELIST" ] && grep -q ^$3 "$NAMELIST" ; then
+ : # Don't change important snapshots
+ else
+ chcp cp $DEV ${MARK[2]}
+ fi
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
+ lscp $LSCP $DEV | while read CNO DATE TIME REST ; do
TS="$DATE $TIME"
[ "$CNO" = "CNO" ] && continue
if [[ ! "$TS" > "$YEARLY" ]] ; then
elif [[ ! "$TS" > "$HOURLY" ]] ; then
marksnap HOUR "${DATE:8:2}-${TIME:0:2}" $CNO
else
- echo "$CNO $DATE $TIME within last hour"
+ : # echo "$CNO $DATE $TIME within last hour"
fi
done | if read X ; then
: # snapshot within last hour