Bonjour,
J’ai deux machines. J’en ai une qui est sous Debian 11 (Crossbow) et une qui était sous Debian 10 et que j’ai réinstallé sous Debian 12 cette semaine (Worm).
La machine sous Debian 11 exécute des tâches planifiées de sauvegarde basées sur rdiff-backup, elle récupère les sauvegarde dans un stockage local puis, dans un second temps, utilise rdiff-backup pour envoyer une copie de ces sauvegardes vers la machine que j’ai réinstallée sous Debian 12.
Suite à la réinstallation de la machine sous Debian 12, la seconde partie fonctionne sans aucun problème, mais plus la première partie.
En fait, la machine sous Debian 11 ne peut plus sauvegarder la machine sous Debian 12, j’ai lancé la tâche à la main et voilà le retour que j’ai :
┌ (almtesh@Crossbow + 0) (31/08/23 - 12:06:13) (2.94 - 0%) (~)
└% sudo /usr/bin/rdiff-backup --exclude /mnt/home/almtesh/Sync --exclude /mnt/home/almtesh/Temporaire --exclude /mnt/home/almtesh/.local/share/wineprefixes --exclude /mnt/home/almtesh/.steam --exclude /srv/netboot/systems --exclude /var/cache --exclude /var/log --exclude /var/tmp --include /etc --include /home --include /mnt/home/almtesh --include /opt --include /root --include /srv --include /var --exclude / --verbosity 5 worm.home.almtesh.net::/ /mnt/save/hosts/worm.home.almtesh.net
WARNING: this command line interface is deprecated and will disappear, start using the new one as described with '--new --help'.
* Sending back exception ''restrict_path'' of type <class 'KeyError'> with traceback File "/usr/lib/python3/dist-packages/rdiff_backup/connection.py", line 474, in _answer_request
result = eval(request.function_string)(*argument_list)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/rdiff_backup/Globals.py", line 298, in get
return globals()[name]
~~~~~~~~~^^^^^^
Warning: Local version 2.0.5 does not match remote version 2.2.2.
Exception ''restrict_path'' raised of class '<class 'KeyError'>':
File "/usr/lib/python3/dist-packages/rdiff_backup/Main.py", line 395, in error_check_Main
Main(arglist)
File "/usr/lib/python3/dist-packages/rdiff_backup/Main.py", line 415, in Main
final_set_action(rps)
File "/usr/lib/python3/dist-packages/rdiff_backup/Main.py", line 301, in final_set_action
if restore_set_root(rps[0]):
File "/usr/lib/python3/dist-packages/rdiff_backup/Main.py", line 855, in restore_set_root
if parent_dir.path == rpin.conn.Globals.get('restrict_path'):
File "/usr/lib/python3/dist-packages/rdiff_backup/connection.py", line 526, in __call__
return self.connection.reval(*(self.name, ) + args)
File "/usr/lib/python3/dist-packages/rdiff_backup/connection.py", line 439, in reval
raise result
Using rdiff-backup version 2.0.5
with cpython /usr/bin/python3 version 3.9.2
on Linux-5.10.0-25-amd64-x86_64-with-glibc2.31, fs encoding utf-8
Executing ssh -C worm.home.almtesh.net rdiff-backup --server
Traceback (most recent call last):
File "/usr/bin/rdiff-backup", line 32, in <module>
rdiff_backup.Main.error_check_Main(sys.argv[1:])
File "/usr/lib/python3/dist-packages/rdiff_backup/Main.py", line 395, in error_check_Main
Main(arglist)
File "/usr/lib/python3/dist-packages/rdiff_backup/Main.py", line 415, in Main
final_set_action(rps)
File "/usr/lib/python3/dist-packages/rdiff_backup/Main.py", line 301, in final_set_action
if restore_set_root(rps[0]):
File "/usr/lib/python3/dist-packages/rdiff_backup/Main.py", line 855, in restore_set_root
if parent_dir.path == rpin.conn.Globals.get('restrict_path'):
File "/usr/lib/python3/dist-packages/rdiff_backup/connection.py", line 526, in __call__
return self.connection.reval(*(self.name, ) + args)
File "/usr/lib/python3/dist-packages/rdiff_backup/connection.py", line 439, in reval
raise result
KeyError: 'restrict_path'
* Cleaning up
Traceback (most recent call last):
File "/usr/bin/rdiff-backup", line 33, in <module>
sys.exit(load_entry_point('rdiff-backup==2.2.2', 'console_scripts', 'rdiff-backup')())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/rdiffbackup/run.py", line 37, in main
sys.exit(main_run(sys.argv[1:]))
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/rdiffbackup/run.py", line 105, in main_run
ret_val |= conn_act.run()
^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/rdiffbackup/actions/server.py", line 66, in run
sys.stdout.buffer).Server()
^^^^^^^^
File "/usr/lib/python3/dist-packages/rdiff_backup/connection.py", line 405, in Server
self._get_response(-1)
File "/usr/lib/python3/dist-packages/rdiff_backup/connection.py", line 449, in _get_response
┌ (almtesh@Crossbow + 1) (31/08/23 - 12:06:16) (2.94 - 0%) (~)
└% req_num, object = self._get()
^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/rdiff_backup/connection.py", line 296, in _get
raise ConnectionReadError(
rdiff_backup.connection.ConnectionReadError: Truncated header <b''> (problem probably originated remotely)
Je vois bien les deux avertissements
WARNING: this command line interface is deprecated and will disappear, start using the new one as described with '--new --help'.
et
Warning: Local version 2.0.5 does not match remote version 2.2.2.
mais ce sont des avertissements qui doivent probablement aussi apparaître pour la copie des sauvegardes entre les deux machines.
D’autre part, j’ai essayé de voir pour changer la version de rdiff-backup sur les deux machines, mais la version de Debian 11 ne fonctionne pas sous Debian 12 et la version de Debian 12 ne fonctionne pas sous Debian 11 et il n’existe pas de backports qui peut faire correspondre les deux versions. Il faudrait changer la version de Python pour ça, ce qui veut dire modifier les versions d’une grande quantité de paquets.
Est-ce que quelqu’un a une idée ?