Ubuntu Cronjob与rsync

时间:2013-04-16 07:48:51

标签: linux ubuntu backup crontab rsync

目前在工作场所服务器上我们运行每日备份,由于大小限制,我们需要它每隔三天(或类似的东西)。我们使用Rsync进行备份。我想要做的只是改变脚本的运行时间,所以每天都会每隔三天运行一次。

所以我想知道这有可能吗?我担心的是规模不会缩小,因为备份仍然会在一天内进行“3天备份”。这很难解释,所以我会用exampel来表明。

我想要的是什么:

  • 第1天 - 运行备份
  • 第2天
  • 第3天
  • 第4天 - 运行备份
  • 第5天

我担心会发生什么:

  • 第1天 - 运行备份
  • 第2天 - 从第4天开始备份
  • 第3天 - 从第4天开始备份
  • 第4天 - 运行备份
  • 第5天

crontab作业如下所示:

  

5 7 * * * ../rsyncsnapshot.sh每日30

脚本看起来像这样

if [ $# != 2 ]; then
echo "Usage: backup.sh interval_name count"
exit 1
fi

NAME=$1
COUNT=$2

TIMESTAMP=`date -u "+%Y-%m-%d %H:%M:%S%z"`
echo "*** Backup started $TIMESTAMP (interval $NAME, count $COUNT) ***"

echo "Deleting $DEST_DIR/$NAME.$((COUNT-1))"
ssh $DEST_HOST rm -rf $DEST_DIR/$NAME.$(($COUNT-1))

for i in `seq $(($COUNT-1)) -1 2`;
do
  j=$(($i-1))
  echo "Moving $DEST_DIR/$NAME.$j to $DEST_DIR/$NAME.$i"
  ssh $DEST_HOST mv $DEST_DIR/$NAME.$j $DEST_DIR/$NAME.$i
done

echo "Copying $DEST_DIR/$NAME.0 to $DEST_DIR/$NAME.1"
ssh $DEST_HOST cp -al $DEST_DIR/$NAME.0 $DEST_DIR/$NAME.1

echo "Copying source ($SRC) to $DEST_HOST:$DEST_DIR/$NAME.0/"
rsync $RSYNC_ARGS $SRC $DEST_HOST:$DEST_DIR/${NAME}.0/
ssh $DEST_HOST touch $DEST_DIR/$NAME.0

TIMESTAMP=`date -u "+%Y-%m-%d %H:%M:%S%z"`
echo "*** Backup ended $TIMESTAMP ***"
echo "Quota as follows:"
ssh $DEST_HOST quota

1 个答案:

答案 0 :(得分:0)

要减少显着使用的空间量,您需要减少保留的份数。这是脚本的第二个参数。因此,如果您每3天运行一次,并希望保留一个月的备份,请将其更改为:

../rsyncsnapshot.sh daily 10