问题

问题

我正在尝试使用 backintime 在 Synology NAS 上设置我的 Linux 台式机的备份。

但是,我被以下错误信息困扰:

Entfernter Rechner <nas.ip.address> unterstützt 'rsync -rtDH --links --no-p --no-g --no-o  --dry-run --chmod=Du+wx /tmp/tmpAOVRI9 --rsh="ssh -p 22 " "<user>@<nas.ip.address>:/volume2/backup"' nicht:
3072

翻译:

Remote server <nas.ip.address> does not support 'rsync -rtDH --links --no-p --no-g --no-o  --dry-run --chmod=Du+wx /tmp/tmpAOVRI9 --rsh="ssh -p 22 " "<user>@<nas.ip.address>:/volume2/backup"':
3072

设置:

  • Synology NAS:DS214play,运行 DS 5.2-5644
  • 桌面:Linux Mint 17.2
  • 回顾:v1.0.34

我目前所做的:

  • 我已经设置了 NAS,因此我可以<user>使用用户公共 ssh 密钥登录。(因此,ssh -p 22 <user>@<nas.ip.address>工作正常。)
  • 我让 sshfs 工作了,所以sshfs -p 22 -o ServerAliveInterval=240 -o idmap=user <user>@<nas.ip.address>:/ </mountpoint/工作正常。(但是,即使目录存在于 nas 上,sshfs -p 22 -o ServerAliveInterval=240 -o idmap=user <user>@<nas.ip.address>:/volume2/backup </mountpoint/也会失败。)<user>@<nas.ip.address>:/volume2/backup: No such file or directory

当我在桌面上的 shell 中运行上述命令时,出现以下错误消息(我也尝试过,volum2/backup但结果是一样的):

rsync -rtDH --links --no-p --no-g --no-o  --dry-run --chmod=Du+wx /tmp/tmpAOVRI9 --rsh="ssh -p 22 " "<user>@<nas.ip.address>:/volume2/backup"
Permission denied, please try again.
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(226) [sender=3.1.0]

答案1

有一个非常好的维基关于为 BackInTime 设置 Synology NAS,我一直链接着。但那个不见了(至少它不再显示,历史记录仍然可用)。所以我会在这里添加它


问题

BackInTime 无法使用 Synology DSM 5,因为与 NAS 的 SSH 连接引用的根文件系统与 SFTP 不同。使用 SSH 可以访问真正的根目录,使用 SFTP 可以访问虚假的根目录 (/volume1)

解决方案

安装/volume1/backups/volume1/volume1/backups

如何

  • 创建一个新的卷volume1(如果尚不存在)
  • 启用用户主页服务(控制面板/用户)
  • 创建新的共享backups名为volume1
  • volume1创建一个名为的新共享volume1(必须同名)
  • 新建一个名为backup
  • 授予用户backup读/写共享权限backupsvolume1FTP 权限
  • 启用 SSH(控制面板/终端和 SNMP/终端)
  • 启用 SFTP(控制面板/文件服务/FTP/SFTP)
  • 自 DSM 5.1 起:启用备份服务(备份和复制 / 备份服务)
  • 通过 SSH 以 root 身份登录
  • 修改用户的shell backup,设置为/bin/sh
  • 创建新目录/volume1/volume1/backups

    mkdir /volume1/volume1/backups
    
  • 安装/volume1/backups/volume1/volume1/backups

    mount -o bind /volume1/backups /volume1/volume1/backups
    
  • 要自动挂载它,请编写脚本/usr/syno/etc/rc.d/S99zzMountBind.sh

    #!/bin/sh
    
    start()
    {
           /bin/mount -o bind /volume1/backups /volume1/volume1/backups
    }
    
    stop()
    {
           /bin/umount /volume1/volume1/backups
    }
    
    case "$1" in
           start) start ;;
           stop) stop ;;
           *) ;;
    esac
    
  • 在您尝试使用 BIT 为用户制作 SSH 密钥的工作站上backup,将公钥发送到 NAS

    ssh-keygen -t rsa -f ~/.ssh/backup_id_rsa
    ssh-add ~/.ssh/backup_id_rsa
    ssh-copy-id -i ~/.ssh/backup_id_rsa.pub backup@<synology-ip>
    ssh backup@<synology-ip>
    
  • 现在,您可以使用 BackInTime 与用户一起执行对 NAS 的备份backup

免责声明:我是 BIT 开发团队的成员

答案2

除了 Germar 的解决方案之外,我还必须在配置文件设置中添加自定义 rsync 标志:

  • 转到“导出选项”
  • 勾选“将附加选项粘贴到 rsync”
  • 添加 --rsync-path=/rsync 路径在旁边的文本字段中输入 /rsync

在我的 Synology 站上,rsync 位于 /bin/rsync。

相关内容