Sauvegarde de Gladys


#1

Bonjour,

Configurer Gladys c’est très long surtout quand on à plusieurs utilisateurs.

Quelles metodes a ton pour le sauvegarder ?

Une bête copie de la carte SD?
Serait il possible de faire une sauvegarde des reglages vers Google drive ou sur une carte SD?


Mot de passe Root dans gladys
#2

Salut,

Tu peux sauvegarder la base de données.
Attention, comme toute sauvegarde, il faut vérifier que la restauration de ce backup fonctionne (Sinon au moment venu, on se retrouve comme un c**)


#3

Salut,

Il me semble que lors d’une discussion, Pierre-Gilles avait aborder la future possibilité de faire des backup vers des plateforme du type Google Drive.

Mais a vrai dire, avec la quantité de boulot qu’il abat je ne sais pas où en est le projet :wink:


#4

Yes, j’aimerais bien faire ça!

Mais bon si quelqu’un pourrait le faire ça serait génial, en vrai ça se fait en 4 minutes chrono et ça ne demande aucune compétences en Gladys ! :stuck_out_tongue:

Etape 1 :
Faire un dump de la base de donnée MySQL avec mysqldump ( tuto ici => https://hawkcreation.com/exporter-en-ligne-de-commande-avec-mysqldump/ )

Etape 2:

Envoyer le fichier sous Google Drive avec le l’utilitaire en ligne de commande google drive => https://github.com/prasmussen/gdrive

Etape 3:

Mettre les 2 commandes dans un fichier sh et automatiser la sauvegarde quotidienne avec un cron

Si quelqu’un se chauffe pour faire le script et peut le partager, ça serait top :slight_smile:


#5

J’essaye de regarder ça ce soir, mais je promet rien ^^
Je suis pas un expert hein :wink:

super la lib gdrive au passage ! Je connaissais pas :thumbsup:


#6

J’ai suivi tes liens j’ai une ébauche des différents morceaux :

// INSTALLATION //

echo Telechargement du paquet gdrive
wget https://docs.google.com/uc?id=0B3X9GlR6EmbnVXNLanp4ZFRRbzg&export=download

echo Ajout du droit d'execution
chmod +x gdrive-linux-rpi

echo 1er lancement
grdive-linux-rpi about

–> parcourrir l’URL fournie par la commande précédente et récupérer le fichier token dans le dossier .gdrive

// UTILISATION // --> à mettre dans un .sh

echo Sauvegarde de la base de donnees
mysqldump -u root -p root > gladys.sql

echo Upload vers Google Drive
gdrive upload gladys.sql

// AUTOMATISATION // --> + regle CRON

const { spawn } = require('child_process')

const AutoBkp = spawn('sh', [ 'BackupGdrive.sh' ], {
  cwd: process.env.HOME + '/Home/pi/Gdrive',
  env: Object.assign({}, process.env, { PATH: process.env.PATH + ':/usr/local/bin' })
})

J’ai écrit tout ce merdier sans tester, je regarde plus en détails ce soir pour adapter les chemins :slight_smile:


#7

Nice !! :slight_smile: Hâte de voir tout ça


#8

Genial. Ça depasse de loin mes compétences


#9

Salut @pierre-gilles,

J’avance sur ce sujet, cependant je bloque sur un point :

CRON est dispo pour la v3 de Gladys ??
J’obtiens ce type de message quand j’installe le module :

0|gladys | TypeError: Cannot read property ‘on’ of undefined
0|gladys | at Object.module.exports (/home/pi/gladys/api/hooks/cron/index.js:6:21)
0|gladys | at wrapper (/home/pi/gladys/node_modules/@sailshq/lodash/lib/index.js:3250:19)
0|gladys | at prepareHook (/home/pi/gladys/node_modules/sails/lib/app/private/loadHooks.js:45:17)
0|gladys | at /home/pi/gladys/node_modules/sails/lib/app/private/loadHooks.js:149:13
0|gladys | at /home/pi/gladys/node_modules/sails/node_modules/async/lib/async.js:181:20
0|gladys | at Object.async.forEachOf.async.eachOf (/home/pi/gladys/node_modules/sails/node_modules/async/lib/async.js:233:13)
0|gladys | at Object.async.forEach.async.each (/home/pi/gladys/node_modules/sails/node_modules/async/lib/async.js:209:22)
0|gladys | at prepare (/home/pi/gladys/node_modules/sails/lib/app/private/loadHooks.js:148:17)
0|gladys | at /home/pi/gladys/node_modules/sails/node_modules/async/lib/async.js:713:13
0|gladys | at iterate (/home/pi/gladys/node_modules/sails/node_modules/async/lib/async.js:262:13)
0|gladys | at /home/pi/gladys/node_modules/sails/node_modules/async/lib/async.js:274:29
0|gladys | at /home/pi/gladys/node_modules/sails/node_modules/async/lib/async.js:44:16
0|gladys | at /home/pi/gladys/node_modules/sails/node_modules/async/lib/async.js:718:17
0|gladys | at /home/pi/gladys/node_modules/sails/node_modules/async/lib/async.js:167:37
0|gladys | at _combinedTickCallback (internal/process/next_tick.js:73:7)
0|gladys | at process._tickDomainCallback (internal/process/next_tick.js:128:9)

Message pour lequel à l’époque, sur d’autre module tu expliquais leur incompatibilité avec Gladys v3.


#10

Hello!

Je crois que je vais définitivement supprimer ce module du store, tout le monde se trompe ^^ (Edit: c’est fait)
Non! En fait il faut savoir que seule les modules visible depuis Gladys sont disponible sur ta version de Gladys ! Dans les modules qui sont sur le store, certains datent de la v2 et ne sont pas compatible.

Pour faire des règles cron, c’est désormais intégré nativement à Gladys dans les alarmes ! ( Alarmes => cron )


#11

Wow j’suis à la traine ! :stuck_out_tongue:

Super merci ! :thumbsup:


#12

Euh… Je vais peut-être paraître con mais bon… Comme on dit “mieux vaut être con 5 min que toute sa vie” ^^

Dans les scripts Gladys comment je fais pour executer mon .sh ?
Je m’adapte à pas mal de chose, mais là j’avoue que le nodejs c’est pas ma tasse de thé ^^

En gros :

  • j’ai mon script.sh qui fait le backup vers GoogleDrive
  • J’ai créé une partie du scénario avec la rêgle cron pour faire une sauvegarde tout les lundi
  • mais j’ai pas le script en nodejs qui appelle mon script.sh

Merci :wink:


#13

Tu ne peux pas!

Pour des raisons de sécurité, ce n’est tout simplement pas possible.

Pour faire ça, il faut faire un module !

Après pour cette sauvegarde vers google drive je ne pensais pas forcément à faire ça dans Gladys en fait… quand je parlais de cron je parlais du cron système!


#14

Aaaaaaaaaaaaaaaaaaaaaaaaaah !!
Fallait deviner :wink:

Bon ben je regarde ça alors ! Merci ! :slight_smile:


#15

( juste, sur le lien que j’ai posté, n’utilise pas le GUI cron, ça sert à rien, rien ne vaut la ligne de commande )


#16

Ok ça marche ! :smile:


#17

Bon les amis…

Je pense qu’il y a beaucoup plus propre et perso @pierre-gilles ça ne m’a pas pris 4 minutes chrono :joy:
Je vous laisse tester et faire vos retours :slight_smile:

Allez Kiss ! :kissing_heart:

PS: J’ai volontairement fait une arborescence Gladys==>GLDS_BDD_BKP parce que j’imagine faire d’autres sous dossiers avec d’autre type de sauvegarde, dont notamment un pour les modules par exemple.


Dans Gladys 3.7, Gladys apprend désormais toute seule!
[NEED YOUR FEEDBACK] Développement features
#18

Hello,

J’ai fixé quelques bugs que j’ai rencontré suite à la sauvegarde d’hier soir, et j’ai également mis à jour le readme.md, j’y ai ajouté une indication supplémentaire pour recevoir une notification par Gladys lorsque la sauvegarde s’effectue.


#19

Top tout ça !

J’ai pas testé, mais ça m’a l’air vraiment pas mal


#20

[quote=“pierre-gilles, post:19, topic:1364”]
J’ai pas testé, mais ça m’a l’air vraiment pas mal
[/quote] Merci :thumbsup:

Quand t’as le temps, et j’imagine bien que tu n’en dispose que de peu :wink: si tu peux me faire un retour pour valider que ça marche de bout en bout…

Il y a un passage que j’ai pas pu tester… J’ai fais en plusieurs étape de mon coté et ensuite j’ai tout coller dans un script donc j’ai un doute sur un passage.