Я пытаюсь использовать rdiff-резервное копирование для создания резервных копий некоторых папок на сервере Ubuntu 8.04LTS.
Я пытаюсь сделать резервную копию на другом сервере с более современным дистрибутивом Ubuntu (9.10). Я назову этого «клиентом».
rdiff-backup необходимо установить как на клиенте, так и на сервере. Он доступен в репозиториях apt на обеих машинах, поэтому я установил его, используя sudo apt-get install rdiff-backup
.
Проблема в том, что версия, установленная на сервере, старше версии на клиенте (1.1.15 против 1.2.8). Таким образом, я получаю ошибки, когда пытаюсь заставить их работать вместе.
Поэтому мне нужно, чтобы обе версии были одинаковыми.
Какова стандартная процедура в этих случаях? Должен ли я пытаться обновить версию на сервере или понизить версию на клиенте? И как мне это сделать?
В случае, если это будет полезно, я хотел бы указать, что у apt-package rdiff-backup есть некоторые зависимости: 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']
Испытав те же проблемы, я создал PPA, который обеспечивает текущую резервную копию rdiff даже для более старых версий Ubuntu.
https://launchpad.net/~rdiff-backup-pkgs/+archive/ppa/+packages
Конечно, вам действительно не следует устанавливать случайные deb-файлы, предоставленные незнакомцами. Следовательно, вы можете сначала взглянуть на исходные файлы пакета, чтобы увидеть, чем пакеты отличаются от исходного исходного кода.
На клиенте или на сервере запустите aptitude search rdiff-backup.
Вы можете увидеть версии rdiff-backup с определенными номерами версий в именах пакетов (я получил это в Debian). Удалите общую версию и установите версию с наибольшим номером, доступным как на клиенте, так и на сервере.