我正在尝试使用 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
读/写共享权限backups
和volume1
FTP 权限 - 启用 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
,将公钥发送到 NASssh-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。