weekly, monthly
This commit is contained in:
parent
b8021ce99d
commit
3f0f29798b
@ -5,6 +5,8 @@ REMOTE_LOCATION=""
|
||||
EXCLUDES=/dev/null
|
||||
DEST=""
|
||||
MAX_ROTATE=7
|
||||
WEEK_KEEP=0
|
||||
MONTH_KEEP=0
|
||||
BWLIMIT=0 # kBps
|
||||
TIMEOUT=1800
|
||||
RETRY=5
|
||||
|
||||
@ -207,6 +207,58 @@ rotateBackup() {
|
||||
fi
|
||||
done
|
||||
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() {
|
||||
@ -244,6 +296,22 @@ runBackup() {
|
||||
echo -e "$(date +%Y-%m-%d:%H:%M:%S)\t\t\tdaily.$backup_num"
|
||||
fi
|
||||
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 ))
|
||||
then
|
||||
RSYNC_OPTS="$RSYNC_OPTS --timeout=$TIMEOUT"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user