我正在尝试使用rdiff-备份为了备份 Ubuntu 8.04LTS 服务器内的某些文件夹。
我正在尝试在另一台装有较新版 Ubuntu 发行版 (9.10) 的服务器上进行备份。我将这台服务器称为“客户端”。
rdiff-backup 需要安装在客户端和服务器上。它在两台机器的 apt 存储库中都有,所以我使用 安装了它sudo apt-get install rdiff-backup
。
问题是服务器上安装的版本比客户端上的版本旧(1.1.15 vs 1.2.8)。因此,当我尝试让它们一起工作时,会出现错误。
所以我需要两个版本相同。
在这些情况下,标准程序是什么?我应该尝试升级服务器上的版本,还是降级客户端上的版本?我该怎么做?
如果它有用,我想指出 rdiff-backup apt-package 有一些依赖项 - librsync1
&python-support
附上我遇到的错误,希望它们有帮助:
rdiff-backup egarcia@test::/var/rails/ohwr/backup /home/kikito/backup/files
Warning: Local version 1.2.8 does not match remote version 1.1.15.
Exception '
Warning Security Violation!
Bad request for function: rpath.make_file_dict
with arguments: ['/var/rails/ohwr/backup']
' raised of class '<class 'rdiff_backup.Security.Violation'>':
File "/usr/lib/pymodules/python2.6/rdiff_backup/Main.py", line 304, in error_check_Main
try: Main(arglist)
File "/usr/lib/pymodules/python2.6/rdiff_backup/Main.py", line 321, in Main
rps = map(SetConnections.cmdpair2rp, cmdpairs)
File "/usr/lib/pymodules/python2.6/rdiff_backup/SetConnections.py", line 78, in cmdpair2rp
return rpath.RPath(conn, filename).normalize()
File "/usr/lib/pymodules/python2.6/rdiff_backup/rpath.py", line 884, in __init__
else: self.setdata()
File "/usr/lib/pymodules/python2.6/rdiff_backup/rpath.py", line 908, in setdata
self.data = self.conn.rpath.make_file_dict(self.path)
File "/usr/lib/pymodules/python2.6/rdiff_backup/connection.py", line 450, in __call__
return apply(self.connection.reval, (self.name,) + args)
File "/usr/lib/pymodules/python2.6/rdiff_backup/connection.py", line 370, in reval
if isinstance(result, Exception): raise result
Traceback (most recent call last):
File "/usr/bin/rdiff-backup", line 30, in <module>
rdiff_backup.Main.error_check_Main(sys.argv[1:])
File "/usr/lib/pymodules/python2.6/rdiff_backup/Main.py", line 304, in error_check_Main
try: Main(arglist)
File "/usr/lib/pymodules/python2.6/rdiff_backup/Main.py", line 321, in Main
rps = map(SetConnections.cmdpair2rp, cmdpairs)
File "/usr/lib/pymodules/python2.6/rdiff_backup/SetConnections.py", line 78, in cmdpair2rp
return rpath.RPath(conn, filename).normalize()
File "/usr/lib/pymodules/python2.6/rdiff_backup/rpath.py", line 884, in __init__
else: self.setdata()
File "/usr/lib/pymodules/python2.6/rdiff_backup/rpath.py", line 908, in setdata
self.data = self.conn.rpath.make_file_dict(self.path)
File "/usr/lib/pymodules/python2.6/rdiff_backup/connection.py", line 450, in __call__
return apply(self.connection.reval, (self.name,) + args)
File "/usr/lib/pymodules/python2.6/rdiff_backup/connection.py", line 370, in reval
if isinstance(result, Exception): raise result
rdiff_backup.Security.Violation:
Warning Security Violation!
Bad request for function: rpath.make_file_dict
with arguments: ['/var/rails/ohwr/backup']
答案1
在客户端或服务器上,运行“aptitude search rdiff-backup”。
您可能会看到 rdiff-backup 版本在软件包名称中带有特定版本号(我在 Debian 上看到过)。卸载通用版本并安装客户端和服务器上可用的最高版本号的版本。
答案2
遇到了同样的问题后,我创建了一个 PPA,它甚至为旧版本的 Ubuntu 提供了当前的 rdiff 备份。
https://launchpad.net/~rdiff-backup-pkgs/+archive/ppa/+packages
当然,你真的不应该安装陌生人提供的随机 deb 文件。因此,你可能希望首先查看软件包源文件,看看这些软件包与原始上游源有何不同。