Manipulation de fichier Nextcloud et Yunohost

Bonjour,
J’ai mis en place une sauvegarde Borg sur Nextcloud qui synchronisée avec mon PC, si tu es patient, j’essaierai de faire un tuto qui pourras te servir, si je me rappelle bien toutes les étapes.
Tel quel tes archives ne seront pas visibles, il faut jouer avec les ACL si je me souviens bien si tu fais les sauvegardes directement dans nextcloud et utiliser la commande “sudo -u nextcloud php occ files:scan ton_dossier_d_accueil_des_archives”
L’avantage de Borg est d’avoir des sauvegardes chiffrées, et nettement moins lourdes car seuls les changements sont sauvegardés.

2 Likes

Oui l’ennui c’est que le répertoire YunoHost.backup n’est pas televersable je crois

@metyun merci je vais essayer la commande de scan de Nextcloud et je regarderais ce que Borg sais faire c’est une piste :slight_smile:

Je te fais le tuto dans les semaines à venir, relance moi ici si je ne repasse pas d’ici 2-3 semaines.

1 Like

Bonjour,

suite à nos échanges d’hier et en attendant le script de @metyun, voici comment, par exemple, je pourrais procéder :

  • mkdir /home/user_linux/YNH_backups

  • cp -r /home/yunohost.backup/archives/ /home/user_linux/YNH_backups/

Puis sous l’interface Nextcloud :

  • Onglet Fichiers -> Nouveau répertoire -> YNH_NC_backups

  • -> dans le nouveau répertoire YNH_NC_backups, téléverser le contenu de /home/user_linux/YNH_backups/

Ainsi tes sauvegardes seront à disposition sur ton Nextcloud.

Les moins :

  • beaucoup de “manœuvres”,
  • lenteur de la commande ‘cp’ sur les gros fichiers.

Les plus :

  • pas de soucis avec les ACL !,
  • sauvegardes disponibles sur ton Cloud.

Si cela peut te dépanner en attendant mieux :slight_smile:

1 Like

Bonjour :slight_smile:

Merci pour cette méthode :slight_smile: par contre et je suis désolé mais moi si je vais sur mon Nextcloud via mon navigateur quand je clique sur téléverser des fichiers, il ouvre une fenêtre qui me permet de rechercher un fichier sur mon PC pas de lui indiquer un chemin interne.

A moins qu’il existe une solution pour téléverser en ligne de commande ?

Merci :slight_smile:

EDIT : Une fois la commande cp -r joué, j’ai monté dans Nextcloud un Dossier de stockage local home/user/backup et du coup il se retrouve à se synchroniser sur mon serveur donc parfait :slight_smile:

Ah, très bien !

J’ai essayé en root (mon user ne fait pas partie des sudoers ! ) une autre méthode (merci @metyun).

Je crée un répertoire :

  • mkdir home/yunohost.app/nextcloud/data/user/files/mon_rep_de_backups/

  • Je copie mes backups Yunohost dedans : cp -r /home/yunohost.backup/archives/ /home/yunohost.app/nextcloud/data/user/files/mon_rep_de_backups/

Ensuite toujours en root :

  • cd /var/www/nextcloud

  • sudo -u nextcloud php occ files:scan --all (options supplémentaires sudo -u nextcloud php occ list)

Et là, je me reconnecte à Nextcloud, et, merveille, mon répertoire “mon_rep_de_backups”, avec les backups, apparait dans mon navigateur !

2 Likes

Exact sa marche :slight_smile: Hier soir j’ai tenté la commande de scan chez moi, elle ne marchait pas car je n’était pas dans /var/www/nextcloud.
Merci beaucoup pour la recherche et l’aide sur ce sujet :slight_smile:

merci @anonyme18 & @metyun pour votre aide sur ce sujet :slight_smile:

1 Like

De rien, avec plaisir.
Pour faire plus propre, le script de @metyun le propose certainement, il faut faire quelques chown et chmod…
Bonne soirée !

1 Like

Je préfère ta solution.
Elle répond à mes besoins, et pour la sauvegarde je fais peu / pas confiance à d’autres applications que mes propres manipulations. Jusqu’a présent j’exportais tout mes calendriers, contact, archives wallabag etc.
Je continuerais à le faire mais je vais pouvoir facilement gérer la sauvegarde de tout mon YunoHost :slight_smile:

yunohost backup create -n Pair
yunohost backup create -n Impair

Ensuite je fais jouer ta série commande et le fichier se diffuse sur mes synchros Nextcloud. Faudrais que je vois pour exclure les data Nextcloud. Mais du coup je récupèrerais une sauvegarde chaque jours au cas ou.
Et avec le client smartphone de Nextcloud j’upload directement la sauvegarde sur mon Smartphone en plus de mes ordis :slight_smile:

@anonyme18 en faite je m’aperçois que j’ai un petit soucis.

Lorsque je me rend sur l’interface Nextcloud, dans mon dossier je n’ai plus le droit de faire des modifs dedans. Je suis obligé de passé par un rm -Rf en root puis un scan Nextcloud pour obtenir les résultats :confused: une petite idée ?
Sachant que quand je fais un ls -l j’ai les mêmes droits sur tout les dossiers.

Désolé de n’être passé que en coup de vent, du coup je n’ai pas assez détaillé comment faire.
Le plus simple et qui devrait fonctionner c’est d’ajouter nextcloud comme groupe avec les ACL. Dans nextcloud il faut créer un “stockage externe” nommé par exemple mes_backups et y monter /home/yunohost.backup. Ensuite passer cette commande:

setfacl -R -m g:nextcloud:r-x /home/yunohost.backup

Puis pour que les fichiers soient vus dans nextcloud (en remplaçant Guillermo par ton utilisateur nextcloud) :

sudo -u nextcloud php -f /var/www/nextcloud/occ files:scan --path="/Guillermo/files/mes_backups"

Petite remarque, il vaut mieux indiquer le chemin que l’option --all qui elle parcoure tout les dossiers de tout les utilisateurs, ce qui n’est pas utile.
Il suffit d’ajouter une tâche cron avec cette commande pour que la synchro puisse se faire. Ce ne sera pas du direct mais en faisant tourner cette tâche cron 1 fois/jour c’est raisonnable.

Pour ta dernière question, je n’ai pas compris pourquoi tu veux faire des modifs dedans, le but n’est-il pas simplement de récupérer une sauvegarde synchronisée sur un autre PC avec Nextcloud?

1 Like

Merci pour les infos et l’aide :slight_smile:

Après moi je préfère bidouiller que d’avoir une application qui fais les choses. Car du coup j’ai fais sa :

BACKUP_CORE_ONLY=1 yunohost backup create -n Pair && cp -r /home/yunohost.backup/archives/Pair* /home/yunohost.app/nextcloud/data/user/files/Back-up/YunoHost/Pair && cd /var/www/nextcloud && sudo -u nextcloud php occ files:scan --all && echo “La sauvegarde est OK” | mail -s “Sauvegarde Pair” no-reply@domaine.tld

Reste à voir comment j’organise la rotation des fichiers :slight_smile:

Du coup je vais faire le test en donnant les droits sur yunohost.backup sa me donnera peut être plus de liberté après

Bonjour,

En effet les répertoires et fichiers copiés dans /home/yunohost.app/nextcloud/data/user/files/ à travers une application tierce n’ont ni les bons droits, ni les bons groupe:propriétaire.
Je parle ici sous le contrôle de @metyun qui propose une commande condensée des détails ci-dessous :
Grosso modo, si tu veux pouvoir supprimer dans Nextcloud le répertoire backup_rep et les fichiers file1.bck et file2.bck (par exemple) :

  • chown nextcloud:nextcloud /home/yunohost.app/nextcloud/data/user/files/backup_rep
    (avec option -R si sous-répertoires)

  • chmod 750 /home/yunohost.app/nextcloud/data/user/files/backup_rep

  • chmod 640 /home/yunohost.app/nextcloud/data/user/files/backup_rep/*

Pour arriver à quelque chose comme :

  • drwxr-x— 2 nextcloud nextcloud 4096 Aug 25 19:12 backup_rep

  • -rw-r----- 1 nextcloud nextcloud 5338 Aug 25 19:12 file1.bck

  • -rw-r----- 1 nextcloud nextcloud 105980 Aug 25 18:44 file2.bck

Mais je pensais que ta copie quotidienne allait écraser celle de l’avant veille :slight_smile:

Bonne journée !

1 Like

Deuxième remarque qui va dans le même sens, le scan --all casse tous les liens de partage, ce qui est pénible ! Je fais donc moi aussi systématiquement mes scans dans le répértoire voulu. même si elles sont un peu “sous le capot”, toutes ces commandes php occ sont quand même sacrément pratiques et m’ont bien aidé lors de manoeuvres pour lesquelles l’interface graphique ne suffisait / ne suivait plus (gros déménagements, changement de disque dur serveur etc…)

1 Like

Je ne comprends toujours pas l’intérêt de vouloir passer par une copie avec cp -r, pourquoi ne pas donner directement accès à /home/yunohost.backup en faisant un montage externe local dans Nextcloud?
Pour bien comprendre comment Nextcloud puisse accéder aux sauvegardes, il faut qu’il soit propriétaire de ces sauvegardes, ou tout au moins que celles-ci ont Nextcloud comme groupe.
Pour faire ceci, il y a plusieurs possibilité avec les ACL comme je l’ai déjà indiqué ci-dessus. Si en plus tu souhaites pourvoir faire ce que tu veux dans le dossier, il faut ajouter les droits en écriture avec rwx au lieu de r-x.
Les ACL permettent d’ajouter certains droits à Nextcloud sans changer le propriétaire et le groupe de base (root:root).

Une autre solution plus basique est de mettre comme groupe Nextcloud et de changer le setgid ( chmod g+s) afin que tout les fichiers/dossiers crées dans ce répertoire ont Nextcloud comme groupe.

Comme j’ai l’impression que le but est non pas d’avoir une solution toute faîte mais d’apprendre en faisant toi même ton script de synchronisation de tes sauvegardes, je te laisse faire tes recherches. Pour la rotation, tu peux passer par la commande find, il y a des scripts disponibles ici-même sur ce forum.
Si tu bloques quelque part ou que tu ne comprends pas certaines notions de droits, n’hésite pas à demander d’éclaircir certaines notions.
Ajout: Pour les ACL, si tu souhaites faire différents tests sur le dossier /home/yunohost.backup, tu peux annuler les modifications avec:

setfacl -Rb /home/yunohost.backup

Tu peux aussi restreindre au dossier archives, c’est suffisant car c’est lui qui contient les sauvegardes réalisées par yunohost.

1 Like

@anonyme13 : pas encore, j’en suis qu’au début mais oui quand j’aurais compris tout les bouts de commande je ferais quelques choses de tournant genre
J1 : Sauvegarde
J2 : Sauvegarde > Sauvegarde old + Sauvegarde
J3 Del sauvegarde old + Sauvegarde > old + Sauvegarde.

Merci pour les commandes de droit je vais regarder cela aussi :slight_smile:

@Limezy : oui avec ces infos complémentaire je vais faire qu’un scan des répertoires concernés.

@metyun : merci également pour tout ces renseignements, je fais faire mes essais.

@anonyme18 @Limezy @metyun : encore merci à vous pour votre temps et vos explications :blush:

As-tu jeté un œil ici ?
Tout se fait en tache cron, donc dans le terminal :slight_smile:Sauvegarde base sql

Oui c’est intéressant je vais décortiquer certains bout de code pour le mettre dans ma routine peut-être.
Merci pour le lien.

Salut, tu ne devrais pas sauvegarder tes datas et chercher à les mettre à disposition sur la même machine. En cas de crash tu perdras tout si tu n’as pas téléchargé ton dernier fichier backup. Personnellement je te conseille de faire un script qui sauvegarde sur une autre machine. Tu as différentes commandes pour cela scp, rsync…

1 Like

Salut,
Oui merci pour l’avertissement, après j’ai un Pi qui tourne pour synchroniser cela et les fichiers de back-up une fois générer je les copies sur mon smartphone :slight_smile: