Sauvegarde de Gladys


#21

Salut, j’ai testé et ça fonctionne chez moi, par contre si quelqu’un a télécharger le git à un autre endroit que /home/pi ou qu’on change le nom du dossier, le setup ne va pas fonctionner je crois.


#22

super sauvegarde réussie…

bon admettons demain gladys plante je fait quoi avec ma sauvegarde?


#23

En effet tu as raison !
Je vais le préciser dans le readme.md ! on vera ensuite comment s’en passer !
@WolfVic - Question : l’installation s’est bien stoppée à la demande du code d’authentification GoogleDrive ? Et s’est terminée une fois le code saisi ? ==> Si c’est le cas c’est parfait !

C’est en cours de dev mais en gros, manuellement :

  • Tu DL ta sauvegarde sur ton drive
  • tu la pousse sur Gladys
  • tu restaure avec mysql ==> mysql -uroot -proot gladys < gladys_backup.sql

#24

Je crois qu’elle s’est stoppé.
voici mon log si ça t’intéresse avec mes commentaires en gras:

// INSTALLATION //
Ajout du droit d’execution sur le paquet gdrive et du script de sauvegarde
Obtention du token Google Drive
Authentication needed
Go to the following url in your browser:
https://accounts.google.com/o/oauth2/auth?access_type=offline&client_id=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.apps.googleusercontent.com&redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob&response_type=code&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive&state=state

Enter verification code: [Mon code] ça a attendu que j’entre et valide mon code
User: [Moi]
Used: 1.7 GB
Free: 18.7 GB
Total: 20.4 GB
Max upload size: 5.2 TB
// INITIALISATION //
rm: cannot remove ‘GLDS_FLD_ID.txt’: No such file or directory
rm: cannot remove ‘GLDS_BKP_FLD_ID.txt’: No such file or directory
Arborescence de sauvegarde créée
Lancez votre premiere sauvegarde via ./GdriveGladysbackup.sh Le nom du script c’est GdriveGladysBackup.sh


#25

Génial !

Bien vu la faute dans le script ! Je corrige !

Au fait --> je suis entrain de transformer mes script dégueulasse en module Gladys :wink:
Je vous fourni ça bientôt !


#26

Salut,
Je me suis amusé à modifier le script pour supprimer les backups trop anciens car la bases de données a beau être petite, au fil des semaines/mois notre google drive risque de se remplir. J’ai donc créer une partie qui liste les fichiers de backup, sélectionne uniquement ceux qui ont plus de 30 jours (modifiable facilement) , liste les ids dans un fichier, supprime les anciennes bases de données, supprime la liste.

script GdriveGladysBackup.sh:

#!/bin/bash
echo ‘// SAUVEGARDE //’
echo ‘Création de la sauvegarde de la base de données’
var_DAY_MAX=“30” #durée max d’ancienneté des fichiers
var_DATE_OLD=$(date -d “$var_DAY_MAX day ago” +%Y-%m-%dT%H:%M:%S)
var_BKP_FILE_NAME=gladys-$(date +%Y-%m-%d-%H-%M).sql
mysqldump -uroot -proot gladys > /home/pi/gladys-backup/"$var_BKP_FILE_NAME"
echo ‘Sauvegarde créée’
echo ‘Upload vers Google Drive’
cd /home/pi/gladys-backup
var_GLDS_BKP_FLD_ID=$(cat GLDS_BKP_FLD_ID.txt)
./gdrive upload --parent “$var_GLDS_BKP_FLD_ID” “$var_BKP_FILE_NAME” --delete
echo ‘Sauvegarde terminée !’
echo ‘// NETTOYAGE //’
echo ‘Création de la liste des anciens fichiers’
./gdrive list --no-header -q “’$var_GLDS_BKP_FLD_ID’ in parents and modifiedTime < ‘$var_DATE_OLD’” | cut -d’ ’ -f1 > GLDS_OLD_FILE.txt
echo ‘Suppression des anciens fichiers’
for i in $(cat GLDS_OLD_FILE.txt)
do
./gdrive delete “$i”
done
echo ‘Suppression de la liste’
rm GLDS_OLD_FILE.txt
echo ‘Nettoyage terminé !’

PS: J’ai vu après avoir modifier le script que C4rlit0 compte transformer le tout en module mais j’avais quand même envie de le partager. Si vous voyez des points qui sont pas optimisés dans ce que j’ai fait, hésitez pas à me le signaler, j’ai envie d’apprendre! :smiley:


#27

Il est cool ton script ! Ça peut etre facilement ajouté au module avec un paramètre gladys

Hésite pas à faire un pull request sur mon github je regarderai ça en rentrant de week !
:thumbsup:


#28

d’accord je fais ça ^^


#29

j’ai restaurer de cette facon visuellement tout est bon je vois les script les token les modules installé.

Mais ca ne fonctione pas. gladys n arrive plus a me joindre par telegram, ni a lire mon calendrier, je ne suis plus connecté a owntrack,


#30

extra, il pourrait être utile de rajouter quelques tests, par exemple avant de créer le fichier de backup :

if [  ! -d "gladys-backup" ]; then
    mkdir gladys-backup
fi

aussi avant d’afficher “Sauvegarde crée” on peut tester le code de retour de la dernière fonction appelée avec un test du type ci-dessous, pour valider que tout s’est bien passé (en général dans ce cas le code de retour vaut 0) :

checkStatus() {
	if [ $? ]; then
		echo -e " \033[0;32;40mOK\033[0m"
	else
		echo -e " \033[0;31;40mNOK\033[0m"
		exit
	fi
}

Finalement on peut aussi tester la présence des outils nécessaires par exemple avec le test ci-dessous :

which mysqldump

qui retournera 0 si mysqldump est trouvé dans le path

mais c’est une super initiative et un beau travail d’équipe :wink:

EDIT: il faut rendre à César … @C4rlit0 indique sur son repo les manip a effectuer dont la création du répertoire gladys-backup, mais cela pourrait être automatisé


#31

bon une fois la sauvegarde restaurer je doit supprimer les modules et les réinstaller pour que cela fonctionne

pour préciser un peu. j’ai du remettre a zéro mon raspberry donc j’ai remis l’image sur la carte sd.


#32

C’est important à savoir en effet ! @pierre-gilles aura peut être des precisons sur ce phénomène


#33

si j exporte avec fillezilla tout le rep de gladys, est ce que cela fonctionnerais?


#34

Je ne pense pas mais j’en ai aucune certitude


#35

C’est normal oui! La sauvegarde de Gladys ne sauvegarde que la base de donnée, pas le dossier de modules. Ce qu’il faudrait faire c’est rajouter dans Gladys peut être un check d’intégrité du dossier /api/hooks pour vérifier que tous les modules présent en DB sont effectivement installé, et si non proposer une réinstallation… c’est une idée :slight_smile:


#36

Je pense que je vais plutôt m’orienter vers un clonage de la carte SD


Sauvegarder la configuration de Gladys
#37

Salut,

suite test effectué tout fonctionne parfaitement.

Merci @ tous pour ce travail impécable


#38

Salut,

Pour la partie CloneSD voici le GIT https://github.com/Scoob79/Gladys-CloneSD

@+


#39

Bonjour à tous.

J’ai voulu me pencher sur ce tuto pour cloner ma SD.

J’ai suivi le tuto en :

  • clonant le git à la racinde de ma SD,
  • allant dans le repertoire Gladys-CloneSD
  • executant les commande sudo chmod +x ./CloneSD.sh puis sudo mkdir /mnt/NAS_BOX
  • Edité mon fichier avec nano

Lorsque je lance la commande, j’obtiens ce message d’erreur :

[email protected]:~/gladys/Gladys-CloneSD $ sudo ./CloneSD.sh
sudo: unable to execute ./CloneSD.sh: No such file or directory 

Où ai-je raté une étape ?

Edit : Les logs complets des étapes (2ème essai, en installant le git directement dans le répertoire de gladys) :

[email protected]:~/gladys $ git clone https://github.com/Scoob79/Gladys-CloneSD.git
Clonage dans 'Gladys-CloneSD'...
remote: Counting objects: 21, done.
remote: Total 21 (delta 0), reused 0 (delta 0), pack-reused 21
D▒paquetage des objets: 100% (21/21), fait.
V▒rification de la connectivit▒... fait.
[email protected]:~/gladys $ sudo chmod +x ./CloneSD.sh
chmod: impossible d'acc▒der ▒ ▒▒./CloneSD.sh▒▒: Aucun fichier ou dossier de ce type
[email protected]:~/gladys $ dir
api          assets        config      Gladys-CloneSD  init.js     node_modules  rpi-install.sh  test   yarn.lock
apidoc.json  cache         dev.js      Gruntfile.js    LICENSE.md  package.json  rpi-update.sh   views
app.js       CHANGELOG.md  Dockerfile  index.js        logs        README.md     tasks           www
[email protected]:~/gladys $ cd Gladys-CloneSD
[email protected]:~/gladys/Gladys-CloneSD $ sudo chmod +x ./CloneSD.sh
[email protected]:~/gladys/Gladys-CloneSD $ sudo mkdir /mnt/NAS_BOX
mkdir: impossible de cr▒er le r▒pertoire ▒▒/mnt/NAS_BOX▒▒: Le fichier existe
[email protected]:~/gladys/Gladys-CloneSD $ sudo nano ./CloneSD.sh
[email protected]:~/gladys/Gladys-CloneSD $ sudo nano ./CloneSD.sh
[email protected]:~/gladys/Gladys-CloneSD $ sudo ./CloneSD.sh
sudo: unable to execute ./CloneSD.sh: No such file or directory

Et mon fichier CloneSD.sh :

#!/bin/bash
DATE=$(date +"%Y-%m-%d")
BoxToClone=Mia
SdImgSize=2032664576
FileName=SD-Backup_$BoxToClone\_$DATE.img
File=/mnt/NAS_BOX/$FileName

sudo mount -v -t cifs //IPduNAS/Volume_2/Backupgladys /mnt/NAS_BOX -o user=monuser,pass=monpass,rw,uid=1000,$
#sudo dd if=/dev/mmcblk0 bs=4M of=$File && sync
sudo dd if=/dev/mmcblk0 bs=4M | sudo gzip -1 -| sudo dd of=$File && sync

FileStat=$(wc -c "$File" | cut -f 1 -d ' ')

#40

Laissez tomber mon problème, j’ai contourné ce dernier en sauvegardant simplement ma carte SD à l’aide du logiciel WIN32 Disk Imager (beaucoup plus simple :wink: )

Désolé du dérangement.