Manipulation de fichier Nextcloud et Yunohost

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: