gpt4 book ai didi

linux - Ubuntu Cronjob 与 rsync

转载 作者:太空宇宙 更新时间:2023-11-04 06:06:39 28 4
gpt4 key购买 nike

目前,我们在工作场所服务器上运行每日备份,由于大小限制,我们只需要每三天一次(或类似的情况)。我们使用 Rsync 来进行备份。我想做的就是更改脚本的运行时间,因此将每天运行一次,它将每三天运行一次。

所以我想知道这是否可能?我担心的是大小不会缩小,因为备份仍然会进行“3 天备份”而不是仅一天。这很难解释,所以我会通过例子来展示。

我想要什么:

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

我担心会发生什么:

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

crontab 作业如下所示:

5 7 * * * ../rsyncsnapshot.sh daily 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

最佳答案

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

../rsyncsnapshot.sh daily 10

关于linux - Ubuntu Cronjob 与 rsync,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16031504/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com