Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 28/08/2019, à 13:56

thierry_b

problème rdiff-backup avec répertoire distant monté en cifs

Bonjour,

Quand je lance cette copie:

rdiff-backup --exclude-globbing-filelist exclude_from_snap_plex.txt /media/snap_plex /media/ds415play/donnees/Backup/snap_plex

Avec

/media/ds415play/donnees

étant un montage cifs, ça ne fonctionne pas, j'ai l'erreur suivante:

Exception '[Errno 95] Operation not supported' raised of class '<type 'exceptions.OSError'>':
  File "/usr/lib/python2.7/dist-packages/rdiff_backup/robust.py", line 32, in check_common_error
    try: return function(*args)
  File "/usr/lib/python2.7/dist-packages/rdiff_backup/rpath.py", line 111, in copy
    rpout.symlink(rpin.readlink())
  File "/usr/lib/python2.7/dist-packages/rdiff_backup/rpath.py", line 1002, in symlink
    self.conn.os.symlink(linktext, self.path)

Exception '[Errno 95] Operation not supported' raised of class '<type 'exceptions.OSError'>':
  File "/usr/lib/python2.7/dist-packages/rdiff_backup/Main.py", line 304, in error_check_Main
    try: Main(arglist)
  File "/usr/lib/python2.7/dist-packages/rdiff_backup/Main.py", line 324, in Main
    take_action(rps)
  File "/usr/lib/python2.7/dist-packages/rdiff_backup/Main.py", line 280, in take_action
    elif action == "backup": Backup(rps[0], rps[1])
  File "/usr/lib/python2.7/dist-packages/rdiff_backup/Main.py", line 346, in Backup
    backup.Mirror(rpin, rpout)
  File "/usr/lib/python2.7/dist-packages/rdiff_backup/backup.py", line 38, in Mirror
    DestS.patch(dest_rpath, source_diffiter)
  File "/usr/lib/python2.7/dist-packages/rdiff_backup/backup.py", line 232, in patch
    ITR(diff.index, diff)
  File "/usr/lib/python2.7/dist-packages/rdiff_backup/rorpiter.py", line 281, in __call__
    last_branch.fast_process(*args)
  File "/usr/lib/python2.7/dist-packages/rdiff_backup/backup.py", line 529, in fast_process
    if self.patch_to_temp(mirror_rp, diff_rorp, tf):
  File "/usr/lib/python2.7/dist-packages/rdiff_backup/backup.py", line 553, in patch_to_temp
    result = self.patch_snapshot_to_temp(diff_rorp, new)
  File "/usr/lib/python2.7/dist-packages/rdiff_backup/backup.py", line 577, in patch_snapshot_to_temp
    self.write_special(diff_rorp, new)
  File "/usr/lib/python2.7/dist-packages/rdiff_backup/backup.py", line 617, in write_special
    if robust.check_common_error(eh, rpath.copy, (diff_rorp, new)) == 0:
  File "/usr/lib/python2.7/dist-packages/rdiff_backup/robust.py", line 32, in check_common_error
    try: return function(*args)
  File "/usr/lib/python2.7/dist-packages/rdiff_backup/rpath.py", line 111, in copy
    rpout.symlink(rpin.readlink())
  File "/usr/lib/python2.7/dist-packages/rdiff_backup/rpath.py", line 1002, in symlink
    self.conn.os.symlink(linktext, self.path)

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/python2.7/dist-packages/rdiff_backup/Main.py", line 304, in error_check_Main
    try: Main(arglist)
  File "/usr/lib/python2.7/dist-packages/rdiff_backup/Main.py", line 324, in Main
    take_action(rps)
  File "/usr/lib/python2.7/dist-packages/rdiff_backup/Main.py", line 280, in take_action
    elif action == "backup": Backup(rps[0], rps[1])
  File "/usr/lib/python2.7/dist-packages/rdiff_backup/Main.py", line 346, in Backup
    backup.Mirror(rpin, rpout)
  File "/usr/lib/python2.7/dist-packages/rdiff_backup/backup.py", line 38, in Mirror
    DestS.patch(dest_rpath, source_diffiter)
  File "/usr/lib/python2.7/dist-packages/rdiff_backup/backup.py", line 232, in patch
    ITR(diff.index, diff)
  File "/usr/lib/python2.7/dist-packages/rdiff_backup/rorpiter.py", line 281, in __call__
    last_branch.fast_process(*args)
  File "/usr/lib/python2.7/dist-packages/rdiff_backup/backup.py", line 529, in fast_process
    if self.patch_to_temp(mirror_rp, diff_rorp, tf):
  File "/usr/lib/python2.7/dist-packages/rdiff_backup/backup.py", line 553, in patch_to_temp
    result = self.patch_snapshot_to_temp(diff_rorp, new)
  File "/usr/lib/python2.7/dist-packages/rdiff_backup/backup.py", line 577, in patch_snapshot_to_temp
    self.write_special(diff_rorp, new)
  File "/usr/lib/python2.7/dist-packages/rdiff_backup/backup.py", line 617, in write_special
    if robust.check_common_error(eh, rpath.copy, (diff_rorp, new)) == 0:
  File "/usr/lib/python2.7/dist-packages/rdiff_backup/robust.py", line 32, in check_common_error
    try: return function(*args)
  File "/usr/lib/python2.7/dist-packages/rdiff_backup/rpath.py", line 111, in copy
    rpout.symlink(rpin.readlink())
  File "/usr/lib/python2.7/dist-packages/rdiff_backup/rpath.py", line 1002, in symlink
    self.conn.os.symlink(linktext, self.path)
OSError: [Errno 95] Operation not supported

J'ai essayé d'ajouter en option de montage iocharset=utf8, mais ça ne change rien.

La commande est exécutée en root et par contre, si je mets en répertoire de destination, un répertoire local de la même machine, aucun soucis.

Des idées?

Merci.

Dernière modification par thierry_b (Le 28/08/2019, à 13:57)

Hors ligne

#2 Le 28/08/2019, à 16:02

bruno

Re : problème rdiff-backup avec répertoire distant monté en cifs

Bonjour,
Dans la mesure où rdiff-backup est un script basé sur rsync qui est censé préserver les propriétaires/groupes et droits d'accès sur les fichiers je soupçonne un problème avec le système de fichiers monté en CIFS (système non compatible avec les droits UNIX ou avec les liens).

Hors ligne

#3 Le 29/08/2019, à 00:10

thierry_b

Re : problème rdiff-backup avec répertoire distant monté en cifs

bruno a écrit :

Bonjour,
Dans la mesure où rdiff-backup est un script basé sur rsync qui est censé préserver les propriétaires/groupes et droits d'accès sur les fichiers je soupçonne un problème avec le système de fichiers monté en CIFS (système non compatible avec les droits UNIX ou avec les liens).

Bonsoir,

Oui possible, mais du coup, comment puis-je m'en sortir?

Quand je liste le contenu du répertoire monté en cifs, le user et le group des fichiers sont root.

Du coup, pour toi, ça ne serait pas possible de le faire avec du cifs en cible?

Merci.

Hors ligne

#4 Le 29/08/2019, à 08:00

bruno

Re : problème rdiff-backup avec répertoire distant monté en cifs

D'après la doc : http://www.nongnu.org/rdiff-backup/FAQ.html#cifs, c'est possible mais il est conseillé d'utiliser SSH.
Mais ce qui compte surtout c'est le système de fichiers utilisé sur la destination. Si c'est un système de fichier Windows (fat, ntfs), tu vas avoir des erreurs et si cela fonctionne une sauvegarde peu fiable.

Vu que dans les retours d'erreur il y a copy et symlink, tu peux essayer de lancer rdiff-backup avec une ou plusieurs de ces options :

--exclude-symbolic-links --no-acls --no-hard-links

Hors ligne

#5 Le 29/08/2019, à 16:04

thierry_b

Re : problème rdiff-backup avec répertoire distant monté en cifs

Hello,

Je te remercie.

En fait, le système cible c'est de l'Ext4 sur mon NAS Synology.

Le problème c'est que je peux pas me permettre d'enlever les liens symboliques et que ma copie soit bancale. En fait, au niveau de ma conf Plex, les répertoires /var/lib/plexmediaserver et /usr/lib/plexmediaserver sont des liens symboliques vers un LV dédié.

Et ça va se compliquer pour faire du rdiff-backup par ssh, c'est possible de l'activer, mais si je veux automatiser ça et passer par une clé ssh, va falloir bidouiller un peu le NAS et la bidouille sera certainement à refaire de temps en temps selon les mise à jour de Synology.

Du coup, peut-être que la meilleure solution serait de faire la copie en locale (en restant sur mon NUC qui héberge mon serveur Plex) et ensuite de faire un tar.gz directement sur le montage cifs, ce qui ne posera plus de problème je pense.

T'en penses quoi?

Merci.

Hors ligne

#6 Le 29/08/2019, à 16:37

bruno

Re : problème rdiff-backup avec répertoire distant monté en cifs

Si le système cible est en ext4 cela semble confirmer que le problème vient des liens symboliques.
Il faudrait regarder la doc rdiff-backup pour voir comment ils sont gérés (copie des liens et de leurs cibles).
Il faut aussi voir comment ils sont gérés au niveau du partage Samba, c'est à dire dans la configuration du serveur Samba sur le NAS. Je te renvoie à la doc Samba pour les options de gestion des liens symboliques.
Voici un exemple qui permet de prendre en compte les liens symboliques (follow symlinks) et de suivre les liens symboliques en dehors du partage (wide links) :

[partage]
follow symlinks = yes
wide links = yes

De manière générale je considère qu'il n'y a pas de raison d'utiliser des partages Samba et cifs entre machines sous Linux. Ce devraient être réservé pour les partages avec des machines sous Windows.
Tu aurais tout intérêt à utiliser SSH qui sera plus fiable et plus rapide.

Ta solution de contournement via une archive compréssée est peut-être plus simple pour toi.

Hors ligne