weekly, monthly
This commit is contained in:
parent
b8021ce99d
commit
3f0f29798b
@ -5,6 +5,8 @@ REMOTE_LOCATION=""
|
|||||||
EXCLUDES=/dev/null
|
EXCLUDES=/dev/null
|
||||||
DEST=""
|
DEST=""
|
||||||
MAX_ROTATE=7
|
MAX_ROTATE=7
|
||||||
|
WEEK_KEEP=0
|
||||||
|
MONTH_KEEP=0
|
||||||
BWLIMIT=0 # kBps
|
BWLIMIT=0 # kBps
|
||||||
TIMEOUT=1800
|
TIMEOUT=1800
|
||||||
RETRY=5
|
RETRY=5
|
||||||
|
|||||||
@ -207,6 +207,58 @@ rotateBackup() {
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
if (( WEEK_KEEP && $(date +%u) == 1 ))
|
||||||
|
then
|
||||||
|
if [ -d "$SNAPSHOT_RW/$NAME/weekly.${WEEK_KEEP}" ]
|
||||||
|
then
|
||||||
|
echo -e "$(date +%Y-%m-%d:%H:%M:%S)\t\tDeleting $SNAPSHOT_RW/$NAME/weekly.${WEEK_KEEP}"
|
||||||
|
$RM -rf "$SNAPSHOT_RW/$NAME/weekly.${WEEK_KEEP}"
|
||||||
|
fi
|
||||||
|
for (( backup_num=$WEEK_KEEP ; backup_num >= 0 ; backup_num-- ))
|
||||||
|
do
|
||||||
|
if [ -d "$SNAPSHOT_RW/$NAME/weekly.${backup_num}" ]
|
||||||
|
then
|
||||||
|
echo -e "$(date +%Y-%m-%d:%H:%M:%S)\t\tRename" \
|
||||||
|
"$SNAPSHOT_RW/$NAME/weekly.${backup_num}" \
|
||||||
|
"to" \
|
||||||
|
"$SNAPSHOT_RW/$NAME/weekly.$(( backup_num + 1 ))"
|
||||||
|
$MV -f "$SNAPSHOT_RW/$NAME/weekly.${backup_num}" \
|
||||||
|
"$SNAPSHOT_RW/$NAME/weekly.$(( backup_num + 1 ))"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
echo -e "$(date +%Y-%m-%d:%H:%M:%S)\t\tCopying" \
|
||||||
|
"$SNAPSHOT_RW/$NAME/daily.1" \
|
||||||
|
to \
|
||||||
|
"$SNAPSHOT_RW/$NAME/weekly.0"
|
||||||
|
cp -al "$SNAPSHOT_RW/$NAME/daily.1" \
|
||||||
|
"$SNAPSHOT_RW/$NAME/weekly.0"
|
||||||
|
fi
|
||||||
|
if (( MONTH_KEEP && $(date +%d) == 1))
|
||||||
|
then
|
||||||
|
if [ -d "$SNAPSHOT_RW/$NAME/monthly.${MONTH_KEEP}" ]
|
||||||
|
then
|
||||||
|
echo -e "$(date +%Y-%m-%d:%H:%M:%S)\t\tDeleting $SNAPSHOT_RW/$NAME/monthly.${MONTH_KEEP}"
|
||||||
|
$RM -rf "$SNAPSHOT_RW/$NAME/monthly.${MONTH_KEEP}"
|
||||||
|
fi
|
||||||
|
for (( backup_num=$MONTH_KEEP ; backup_num >= 0 ; backup_num-- ))
|
||||||
|
do
|
||||||
|
if [ -d "$SNAPSHOT_RW/$NAME/monthly.${backup_num}" ]
|
||||||
|
then
|
||||||
|
echo -e "$(date +%Y-%m-%d:%H:%M:%S)\t\tRename" \
|
||||||
|
"$SNAPSHOT_RW/$NAME/monthly.${backup_num}" \
|
||||||
|
"to" \
|
||||||
|
"$SNAPSHOT_RW/$NAME/monthly.$(( backup_num + 1 ))"
|
||||||
|
$MV -f "$SNAPSHOT_RW/$NAME/monthly.${backup_num}" \
|
||||||
|
"$SNAPSHOT_RW/$NAME/monthly.$(( backup_num + 1 ))"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
echo -e "$(date +%Y-%m-%d:%H:%M:%S)\t\tCopying" \
|
||||||
|
"$SNAPSHOT_RW/$NAME/daily.1" \
|
||||||
|
to \
|
||||||
|
"$SNAPSHOT_RW/$NAME/monthly.0"
|
||||||
|
cp -al "$SNAPSHOT_RW/$NAME/daily.1" \
|
||||||
|
"$SNAPSHOT_RW/$NAME/monthly.0"
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
runBackup() {
|
runBackup() {
|
||||||
@ -244,6 +296,22 @@ runBackup() {
|
|||||||
echo -e "$(date +%Y-%m-%d:%H:%M:%S)\t\t\tdaily.$backup_num"
|
echo -e "$(date +%Y-%m-%d:%H:%M:%S)\t\t\tdaily.$backup_num"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
for (( backup_num=0 ; backup_num <= WEEK_KEEP ; backup_num++ ))
|
||||||
|
do
|
||||||
|
if [ -d "$SNAPSHOT_RW/$NAME/weekly.$backup_num" ]
|
||||||
|
then
|
||||||
|
RSYNC_OPTS="$RSYNC_OPTS --link-dest=$SNAPSHOT_RW/$NAME/weekly.$backup_num"
|
||||||
|
echo -e "$(date +%Y-%m-%d:%H:%M:%S)\t\t\tweekly.$backup_num"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
for (( backup_num=0 ; backup_num <= MONTH_KEEP ; backup_num++ ))
|
||||||
|
do
|
||||||
|
if [ -d "$SNAPSHOT_RW/$NAME/monthly.$backup_num" ]
|
||||||
|
then
|
||||||
|
RSYNC_OPTS="$RSYNC_OPTS --link-dest=$SNAPSHOT_RW/$NAME/monthly.$backup_num"
|
||||||
|
echo -e "$(date +%Y-%m-%d:%H:%M:%S)\t\t\tmonthly.$backup_num"
|
||||||
|
fi
|
||||||
|
done
|
||||||
if (( TIMEOUT ))
|
if (( TIMEOUT ))
|
||||||
then
|
then
|
||||||
RSYNC_OPTS="$RSYNC_OPTS --timeout=$TIMEOUT"
|
RSYNC_OPTS="$RSYNC_OPTS --timeout=$TIMEOUT"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user