linux – 如何防止在rsync中删除目录
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了linux – 如何防止在rsync中删除目录,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2411字,纯文字阅读大概需要4分钟。
内容图文
![linux – 如何防止在rsync中删除目录](/upload/InfoBanner/zyjiaocheng/965/2a8c1087561b4e61b9ea950d8ad111ad.jpg)
我正在尝试制作一个脚本,用于将我的家和其他重要目录备份到外部驱动器,同时排除某些目录和文件类型(–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是一个很棒的工具,但有时很难使用.
问题是你正在使用–exclude-from,它将全局排除规则设置为发送方和接收方.
在rsync对文件系统执行操作之前,它将首先组合两个文件列表,一个用于发送方(客户端),另一个用于接收方(服务器).如果从双方排除文件,rsync将忽略它.如果它仅从发送方排除并存在于接收方,则rsync将删除它.
在您的情况下,由于您的规则是从双方排除文件,rsync不会删除它们.然后使用–delete-excluded强制删除.但是,就像你说的,这个选项与–backup –backup-dir = rsync / backup冲突.
我建议你做以下事情.
>将$EXCL_FROM转换为普通过滤器文件,即在每行之前插入减号以使它们排除规则.
>从rsync选项中删除–exclude-from = $EXCL_FROM和–delete-excluded.
>在rsync选项上包含-FF.
>在调用rsync之前包括以下命令.
cp "$EXCL_FROM" "$SRC/.rsync-filter"
这样,您的规则将仅适用于发送方,如果找到,将从接收方删除指定为排除规则的文件.这不应与备份选项冲突.
更新
实质上,-FF选项是在传输的两端使rsync进程每个目录的过滤器文件名为.rysnc-filter.在您的情况下,它将仅存在于发送方,因此其规则将不适用于接收方.
实际上,-FF等于-F -F.第一个F告诉rsync在源和目标目录的根目录中合并来自.rsync-filter的规则,就像我之前说过的那样.第二个F告诉rsync排除它们.您不希望转移.rsync-filter,否则您的排除规则也将适用于接收方,原始问题将返回 – 排除的文件将不再被删除.
这是我的男人(1)rsync说的:
-F same as --filter='dir-merge /.rsync-filter'
repeated: --filter='- .rsync-filter'
内容总结
以上是互联网集市为您收集整理的linux – 如何防止在rsync中删除目录全部内容,希望文章能够帮你解决linux – 如何防止在rsync中删除目录所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。