【发布时间】:2013-05-23 14:52:39
【问题描述】:
我正在尝试制作一个脚本,用于将我的主目录和其他重要目录备份到外部驱动器,同时排除某些目录和文件类型 (--exclude)。排除的文件也需要在备份中删除,以防我将文件类型或目录添加到排除列表 (--delete-excluded)。
此外,删除的所有内容也需要备份,以防出现严重错误 (--backup --backup-dir=rsync/backup)。
我从这个开始:
#!/usr/bin/env bash
PATH_PWD="`pwd`"
PATH_HOME=~
SRC="/home/redsandro"
PATH_TARGET="/media/redsandro/MyBook 4TB/backup/`hostname`"
PATH_BIN="${SRC}/bin"
EXCL_FROM="${PATH_BIN}/rs-backup-external.sh.exclude.txt"
DATE="`date +%Y-%m-%d`"
OPTS="-ahl --update --del --delete-excluded --force --ignore-errors --progress --stats --exclude-from=$EXCL_FROM --log-file=~/rsync/rsync.$DATE.log"
OPTS="$OPTS --backup --backup-dir=rsync/backup/${DATE}"
#OPTS="$OPTS --dry-run"
echo Backing up $SRC to $PATH_TARGET...
echo
sudo rsync $OPTS "$SRC/" "${PATH_TARGET}${SRC}"
现在,很明显,--del 与 --backup --backup-dir=rsync/backup 冲突。我可以排除这个目录被删除吗?或者有没有更简单的方法来做到这一点?
我的目标是拥有一个可以在我的所有机器上运行的脚本,其中一部分同步到特定于计算机的目录,另一部分(文档、图片)同步到全局目录,因为它们都需要反正都一样。
【问题讨论】:
-
你解决过这个问题吗?我不清楚您要做什么 - 备份备份?
-
不,我从来没有这样做过。我正在尝试进行常规镜像备份,但还将备份中将删除的所有文件移动到一个特殊目录,以便我可以撤消任何意外删除的内容。
-
也许考虑使用 rsync 的 -n 或 --dry-run 选项来看看它会做什么,然后复制将在 rsync 的实际运行中删除的数据?
标签: linux bash shell backup rsync