为什么 rsnapshot 声称源目录不存在?

为什么 rsnapshot 声称源目录不存在?

我正在尝试使用 rsnapshot 设置备份系统,它将文件从远程位置复制到本地位置。我已经设置了 rsnapshot,就我所见,但当我运行 rsnapshot configtest 时,它说

'backup  web3:backups/   web3/ - Source directory "web3:backups/ " doesn't exist'

我使用的配置行是:

backup  web3:backups/   web3/

它在 hosts 文件中使用了别名。但是,我也尝试过使用 ip 地址并在命令中定义用户名,但这些都不起作用(同样的错误)。我还检查了 cmd_ssh 是否已启用并指向有效文件。

有人知道是什么原因造成的吗?现在这变得相当令人沮丧,因为我已经设法让大多数备份系统正常工作,而且我确信我以前也曾这样做过。我尝试过使用 ssh 和 rsync,它们似乎都将 web3:backups 视为有效的网络位置

答案1

最好先测试一下配置的语法。

rsnapshot -c /usr/local/etc/rsnapshot.conf configtest

就我而言,“源目录......不存在”的问题已通过删除尾随空格得到解决。

答案2

虽然 rsync 的文档说它接受 host:path 参数并使用 rsh,但我在代码中找不到该支持的证据。

在发出您看到的消息之前,它会对源参数进行一系列测试:

换句话说:

if ( is_real_local_abs_path($src) )
elsif ( is_ssh_path($src) )
elsif ( is_anon_rsync_path($src) )
elsif ( is_cwrsync_path($src) )
elsif ( is_linux_lvm_path($src) )
else print "Source directory $src doesn't exist"

这些模式都不是您的主机:路径

如果可以,请在 web3 上使用 ssh 或 rsync 守护程序。

对于在本地文件系统上遇到此错误的其他用户,请确保在确认目录确实存在时始终跟踪符号链接。例如,我遇到此错误,因为 /mydir 指向 /data/mydir,它存在...但实际上 root 无法读取,因为 encfs 会隐藏用户挂载的目录,即使 root 也无法读取,而无需使用此选项-o allow_others

答案3

来自rsnapshot 文档

除了本地文件系统上的完整路径外,您还可以使用 rsync 通过 ssh 备份远程系统。如果您已安装并启用 ssh(通过 cmd_ssh 参数),则可以指定如下路径:

备份 [电子邮件保护]:/etc/example.com/

您需要将远程添加username@到字符串前面,因此如果您以 root 身份登录,那么您的配置文件将需要是:

backup  root@web3:backups/   web3/

您可能还需要使用绝对路径(例如,/root/backups/而不仅仅是backups/

答案4

就我而言,有两个问题:

  • 远程服务器使用了自定义 SSH 端口;确保在里面~/.ssh/config或使用ssh_args=-p12345
  • rsnapshot 似乎拒绝接受相对路径(即不以斜杠开头的路径),例如[email protected]:public_html。看到你尝试过web3:backups/,你可能遇到了同样的问题

相关内容