Modèle de message (français)
Matériel: Vieil ordinateur
Version de YunoHost: 3.6.5.3
J’ai accès à mon serveur : En SSH et Par la webadmin et En direct avec un clavier/écran
Êtes-vous dans un contexte particulier ou avez-vous effectué des modificiations particulières sur votre instance ? : non
Description du problème
La sauvegarde de Nextcloud par la web admin est impossible.
En ssh, lorsque je fait un sudo yunohost backup create --apps nextcloud --debug
à la fin du log, j’obtiens :
5254 INFO [################++..] > Backing up data directory...
12713 INFO Création d'une archive de sauvegarde à partir des fichiers collectés …
12713 DEBUG Création de l’archive tar de la sauvegarde …
1679528 ERROR Impossible d'ajouter des fichiers '/home/yunohost.app/nextcloud/data' (nommés dans l'archive : 'apps/nextcloud/backup/home/yunohost.app/nextcloud/data') à sauvegarder dans l'archive compressée '/home/yunohost.backup/archives/20191111-100153.tar.gz'
Traceback (most recent call last):
File "/usr/lib/moulinette/yunohost/backup.py", line 1814, in backup
tar.add(path['source'], arcname=path['dest'])
File "/usr/lib/python2.7/tarfile.py", line 2032, in add
recursive, exclude, filter)
File "/usr/lib/python2.7/tarfile.py", line 2032, in add
recursive, exclude, filter)
File "/usr/lib/python2.7/tarfile.py", line 2032, in add
recursive, exclude, filter)
File "/usr/lib/python2.7/tarfile.py", line 2032, in add
recursive, exclude, filter)
File "/usr/lib/python2.7/tarfile.py", line 2032, in add
recursive, exclude, filter)
File "/usr/lib/python2.7/tarfile.py", line 2032, in add
recursive, exclude, filter)
File "/usr/lib/python2.7/tarfile.py", line 2032, in add
recursive, exclude, filter)
File "/usr/lib/python2.7/tarfile.py", line 2025, in add
self.addfile(tarinfo, f)
File "/usr/lib/python2.7/tarfile.py", line 2054, in addfile
copyfileobj(fileobj, self.fileobj, tarinfo.size)
File "/usr/lib/python2.7/tarfile.py", line 274, in copyfileobj
raise IOError("end of file reached")
IOError: end of file reached
1679788 DEBUG action [868.1] executed in 1679.268s
1679789 DEBUG lock has been released
1679789 ERROR Impossible de créer la sauvegarde
J’ai pensé à faire la commande suivante et j’ai obtenu le résultat qui suit :
$ sudo grep copyfileobj /usr/lib/python2.7/tarfile.py
259:def copyfileobj(src, dst, length=None):
266: shutil.copyfileobj(src, dst)
2054: copyfileobj(fileobj, self.fileobj, tarinfo.size)
2235: copyfileobj(source, target)
La sauvegarde de Nextcloud lors de la mise à jour de ce matin (j’espérais une résolution de problème par la même occasion), a elle pu faire une sauvegarde “pré-mise-à-jour” avec le message ci-dessous trouvé dans le debug et si je comprends bien, yunohost a pu faire la sauvegarde de nextcloud sans le dossier /home/yunohost.app/nextcloud/data
10009 WARNING 5046 [WARN] /home/yunohost.app/nextcloud/data will not be saved, because 'BACKUP_CORE_ONLY' is set.
J’ai aussi fait cat /usr/lib/python2.7/tarfile.py
et j’ai cherché la fonction copyfileobj que je vous soumets ci-dessous. Peutêtre que vous la comprendrez et aurez une idée de recherche à me proposer.
def copyfileobj(src, dst, length=None):
"""Copy length bytes from fileobj src to fileobj dst.
If length is None, copy the entire content.
"""
if length == 0:
return
if length is None:
shutil.copyfileobj(src, dst)
return
BUFSIZE = 16 * 1024
blocks, remainder = divmod(length, BUFSIZE)
for b in xrange(blocks):
buf = src.read(BUFSIZE)
if len(buf) < BUFSIZE:
raise IOError("end of file reached")
dst.write(buf)
if remainder != 0:
buf = src.read(remainder)
if len(buf) < remainder:
raise IOError("end of file reached")
dst.write(buf)
return
Une idée nouvelle? Sinon, j’espère qu’une mise à jour de yunohost viendra résoudre le problème.