You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

rsync over SSH备份脚本exclude规则不生效,无法定位问题原因

问题根因

rsync 的 --exclude 路径规则是相对于同步源根目录匹配的,你当前设置的同步源为 /home/viktor,你写的绝对路径格式排除规则会被rsync判定为匹配源目录下的 home/viktor/xxx 路径,该路径实际不存在,所以排除规则不生效。

修复方案

  • 调整排除规则的路径写法,去掉 /home/viktor/ 前缀,直接以 / 开头代表同步源的根目录即可
  • 你当前脚本生成的三个存储目录文件列表没有实际使用,如果要排除这三个目录的内容,可以直接添加对应排除规则,或者通过 --exclude-from 参数加载你生成的列表文件
  • 可添加 --dry-run 参数先做模拟同步,验证排除规则生效后再执行正式同步,避免误操作

修改后的参考脚本

#!/usr/bin/bash

## This is my backup script

# 如果你生成的三个列表文件有其他用途可保留,否则无需生成,直接加排除规则即可
# ls /storage/Music > /home/viktor/Music-storage.list
# ls /storage/Videos > /home/viktor/Videos-storage.list
# ls /storage/Downloads > /home/viktor/Downloads-storage.list

rsync --verbose --archive --compress --delete \
    --exclude="/.local/share/Trash/*" \
    --exclude="/.local/share/baloo/index" \
    --exclude="/.var/com.valvesoftware.Steam/*" \
    --exclude="/.var/app/com.usebottles.bottles/data/bottles/bottles/GamingBottle/*" \
    --exclude="/Music/*" \
    --exclude="/Videos/*" \
    --exclude="/Downloads/*" \
    --log-file="/home/viktor/backupsync.log" \
    --rsh='sudo ssh -i (omitted but ssh works)' \
    /home/viktor/ viktor@192.168.1.35:/mnt/md/backuparray

echo 'syncing is klaar!'

注:源目录末尾加了/,是为了明确同步/home/viktor目录下的内容,而不是把viktor目录本身同步到目标路径下,你可以根据自己的同步需求决定是否保留。

内容的提问来源于stack exchange,提问作者Viktor De Clippel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 20:24:03