Backup carte SD complète sur freebox V6

Vous avez crée un script lua dont vous êtes fier, un .sh génial, un programme python hors du commun, un tuto , c'est ici que vous pouvez les partager.
Soyez précis quant aux prérequis, les manips à faire pour que votre bijou fonctionne (des chmod ?, un apt-get à faire ...)
Décrivez précisément son fonctionnement
Placez votre code entre [Quote] et {/Quote]
Répondre
Jose
Messages : 63
Enregistré le : 25 sept. 2014, 21:40

Backup carte SD complète sur freebox V6

Message par Jose »

Bonjour à tous et à toutes :arrow:

Dans la collection on se sauve la vie mutuellement car si le chauffage se coupe c'est le divorce, je vous propose aujourd'hui un petit script permettant la sauvegarde complète de votre carte SD sur une freebox V6 avec l'envoi d'un sms avant et aprés via Free mobile.

Vous l'avez compris, la simple sauvegarde des scripts et de domoticz en général peut ne pas permettre un rétablissement rapide de votre installation domoticz perso.

Pour ceux qui utilisent un raspberry pi, vous savez à quel point les cycles d’écritures sur les carte SD peuvent finir par endommager définitivement, votre serveur domotique perso. Il existe un certain nombre d'articles sur le sujet qui vous démonte la possibilité de faire tourner votre système sur un disque externe tout en concevant une carte SD pour le boot. Mais si tout comme moi, vous n'en faites qu'a votre tête, une sauvegarde complète de votre carte SD n'est pas du luxe.

Les pré-requis:

- une freebox V6 mais avec un peu d'huile de coude le script doit pouvoir s'adapter.

- une installation (domoticz dans mon cas) sur laquelle vous avez passé beaucoup de temps et que la simple sauvegarde des répertoires ne permet pas une remise en service rapide.

- un abonnement free mobile permettant l'envoi de sms sur votre portable préféré.

Fixons une fois pour toute un élément incontournable.
La taille du disque de stockage de votre freebox doit être supérieure à la taille de votre carte SD même si le fichier issu de la copie sera compressé.

On commence:

On se connecte comme d'hab au raspberry pi. Puis rendez vous à l'endroit où vous stockez vos scripts. Mon coté psychorigide me fait ranger mes scripts par type (bash, python etc). Dans mon cas, les scripts shell se trouvent ici

Code : Tout sélectionner

/home/pi/domoticz/scripts/shell
J'ai également pour habitude de créer un fichier de configuration qui regroupe les identifiants et mots de passe. Ainsi, le jour où je change, je ne suis pas obligé de me repalucher tout le code.

Code : Tout sélectionner

nano include_passwd
Puis, on ajoute ses petites informations perso: On sauvegarde avec un CTRL x

Code : Tout sélectionner

user='IdentifiantFreeMobile' ; export user
pass='motDePasseFreeMobile' ; export pass

user_box='admin' ; export user_box
pass_box='MotDePasseFreeBox' ; export pass_box
Next Step:

Création du répertoire de montage

Code : Tout sélectionner

sudo mkdir /mnt/freebox
Bien entendu, si vous souhaitez mettre un autre nom, mettez ce qui vous chante mais vous devrez modifier le script qui suit.

Ensuite on tape la commande pour identifier le lecteur correspondant à la carte SD.

Code : Tout sélectionner

sudo fdisk -l
fdisk.JPG
fdisk.JPG (48.36 Kio) Vu 14257 fois
On note très clairement le nom de la carte SD 'mmcblk0', notez ça quelque part ça va servir.

Dernière chose, la création du répertoire de stockage sur sa freebox.

On se connecte en tapant mafreebox.free.fr dans votre navigateur préféré puis sur Explorateur de fichier (accessible après authentification, le même password que vous avez tapé dans le fichier include_passwd CQFD).

Déroulez les emplacements et créer un répertoire Backup_img ou tout autre chose qui vous parle.
N'oubliez pas de modifier cela dans le script image.sh décrit plus bas.

Allez zou, on met tout ça en boite dans le script suivant :

Code : Tout sélectionner

nano image.sh

Code : Tout sélectionner

#!/bin/sh
#############
#
# Script de sauvegarde de l'image complète du serveur Domoticz sur une Freebox V6
# Transmission d un SMS avant et après l'opération
#
# José - JANVIER 2015
#
#############

. ./include_passwd # comprend les identifiants pour acceder à la freebox et transmission des SMS via FreeMobile

# Formatage de la date debut et de l'heure
DATE_DEBUT=`date +%d-%m-%Y`
H_DEPART=`date +%H:%M:%S`
DEBUT_EN_SEC=$(($(echo $H_DEPART | cut -d':' -f1)*3600+$(echo $H_DEPART | cut -d':' -f2)*60+$(echo $H_DEPART | cut -d':' -f3)))

# Transmission d'un premier sms
message=${DATE_DEBUT}' '$H_DEPART' Début de la sauvegarde image du serveur domoticz.'
curl -s -i -k "https://smsapi.free-mobile.fr/sendmsg?user=$user&pass=$pass&msg=$message"

# Montage de la Freebox
echo "Montage de la Freebox"
/sbin/mount.cifs //mafreebox.freebox.fr/Disque\ dur/ /mnt/freebox/ -o user=$user_box,pass=$pass_box

# Sauvegarde sur la Freebox
echo "Sauvegarde sur la Freebox"
dd if=/dev/mmcblk0 | gzip -9 > /mnt/freebox/Backup_img/srv-domoticz-${DATE_DEBUT}'-'$H_DEPART.img.gz

# Démontage de la Freebox
echo "Démontage de la Freebox"
/bin/umount /mnt/freebox

# Formatage de la date de fin et de l'heure
DATE_FIN=`date +%d-%m-%Y`
H_FIN=`date +%H:%M:%S`

# Découpe pour mise en seconde
FIN_EN_SEC=$(($(echo $H_FIN | cut -d':' -f1)*3600+$(echo $H_FIN | cut -d':' -f2)*60+$(echo $H_FIN | cut -d':' -f3)))

# Calcul de la durée d'execution
DUREE_EN_SEC=$(($FIN_EN_SEC-$DEBUT_EN_SEC))

# Remise en Heure - Minute - Seconde
DUREE_H=$(($DUREE_EN_SEC/3600))
DUREE_M=$((($DUREE_EN_SEC%3600)/60))
DUREE_S=$((($DUREE_EN_SEC%3600)%60))

# Transmission sms avec heure de fin et la durée
message=${DATE_FIN}' '$H_FIN' Fin de la sauvegarde image du serveur domoticz. Durée du traitement '$DUREE_H':'$DUREE_M':'$DUREE_S
curl -s -i -k "https://smsapi.free-mobile.fr/sendmsg?user=$user&pass=$pass&msg=$message"
Pour les adeptes du "copier coller, je lance le script, tient c'est curieux ça marche pas" prenez un instant pour modifier les lignes suivantes:

Si vous avez changé le point de montage, changer son nom ici (extrait de la commande) :

/sbin/mount.cifs //mafreebox.freebox.fr/Disque\ dur/ /mnt/freebox/ .../...
ET LA
/bin/umount /mnt/freebox .../...

Pour adapter le nom de votre carte SD, modifier mmcblk0 en rouge par le nom de votre propre carte SD et Backup_img en bleu par le nom de votre répertoire de sauvegarde sur la freebox (extrait de la commande):

dd if=/dev/mmcblk0 | gzip -9 > /mnt/freebox/Backup_img/srv-domoticz .../...

Rendons maintenant ce script exploitable grâce à un chmod +x image.sh

Et tentons le premier lancement.

Code : Tout sélectionner

sudo ./image.sh
Là si tout se passe bien, vous devrier recevoir un sms indiquant le début de la sauvegarde et dans quelques temps un second sms indiquant la fin de la sauvegarde avec la durée totale du job. Dans mon cas, raspberry en RJ45 avec une carte SD de 8 Go, il faut compter 2h30 environ.

Petite astuce en cas de plantage, lancez votre script avec la commande suivante :

Code : Tout sélectionner

sudo sh +x image.sh
Vous verrez dans la console le déroulement du script avec entre autres le valeurs des variables...

Il ne reste plus qu'a gérer sa planification (crontab -e) en fonction de la place restante sur votre freebox et votre degré de paranoïa. Mais si vous êtes arrivé à ce stade de la lecture, je suis heureux de voir que je ne suis pas tout seul :)

Source sur la copie:
http://blog.nicolargo.com/2013/04/raspb ... te-sd.html

Et après...

Comme je dispose d'un raspberry de test, j'ai décidé de tester une restauration complète après avoir lancé une sauvegarde cette nuit.
Et bien après avoir replaqué la sauvegarde sur une nouvelle carte SD, le raspberry est reparti au quart de tour.

J'attends vos commentaires et remarques toujours très constructives.
Modifié en dernier par Jose le 10 févr. 2015, 20:32, modifié 1 fois.

patrice
Messages : 1640
Enregistré le : 22 sept. 2014, 21:51

Re: Backup carte SD complète sur freebox V6

Message par patrice »

Yeah , :o super boulot
Merci
Raspberry Pi model B+, RFXComm,8 interrupteurs Chacon, 5 ds180b 1-Wire, 3 douilles Chacon, 1 contact de porte Chacon, 1 module variateur,module emetteur 54700, Aeon Stick Z-wave, 1 MultiSensor Aeon, accés à distance.
aka thegritche@domoticz forum

Jose
Messages : 63
Enregistré le : 25 sept. 2014, 21:40

Re: Backup carte SD complète sur freebox V6

Message par Jose »

Merci Patrice :oops:

fredclo
Messages : 89
Enregistré le : 28 févr. 2015, 16:57

Re: Backup carte SD complète sur freebox V6

Message par fredclo »

Bonjour,

le fait que les services soient ouverts (ou que les programmes fonctionnent), ne crée pas un risque de sauvegarde non utilisables ?
perso j'ai fait un script un peu différent (mais pas une image justement), et avant le backup, je ferme les services mysql, domoticz, nginx... puis les rouvre après backup.

merci pour le partage

fredclo
RPi sur powerbank, bouton off/reset, domoticz (début avec Fhem sur dockstar), 4 sondes 1wire via rj45, ctrl des volets, tv/fbx, lumière, détecteurs d'ouverture, karotz, multiroom via pifm, ecodevice, ATI RF, et prg du mode arrêt des radiateurs via FP

fredclo
Messages : 89
Enregistré le : 28 févr. 2015, 16:57

Re: Backup carte SD complète sur freebox V6

Message par fredclo »

pour le fun, je viens d'essayer et j'ai :
image.sh: 16: image.sh: arithmetic expression: expecting EOF: "14*3600+09*60+35"

kesako ?

merci
fred
RPi sur powerbank, bouton off/reset, domoticz (début avec Fhem sur dockstar), 4 sondes 1wire via rj45, ctrl des volets, tv/fbx, lumière, détecteurs d'ouverture, karotz, multiroom via pifm, ecodevice, ATI RF, et prg du mode arrêt des radiateurs via FP

Doume
Messages : 531
Enregistré le : 28 déc. 2014, 10:27
Localisation : Nord (59)
Contact :

Re: Backup carte SD complète sur freebox V6

Message par Doume »

A mon avis, tu as mal recopié le script
En ligne 16, (DEBUT_EN_SECONDES=....) le post affiche peut-être la commande sur 2 lignes, mais il faut que ce soit 1 seule ligne dans ton script

fredclo
Messages : 89
Enregistré le : 28 févr. 2015, 16:57

Re: Backup carte SD complète sur freebox V6

Message par fredclo »

j'ai viré les lignes de secondes, et pour l'instant ca tourne. Ca devrait finir dans 1/4 d'heure.
Pour la restauration, tu utilises aussi dd j'imagine ?
Jusqu'à maintenant je faisais une image de la sdcard via "DiskImage_1_6_WinAll.exe" de temps en temps. Et restauration plusieurs fois utilisée, nickel.

En automatique, j'avais essayé dd mais sans succès à cause j'imaginais de l'OS qui tournais pendant la copie. Du coup, j'utilise, mais sans jamais avoir essayé de restauration, sysmatt-rpi-tools-master.
Peut etre que je vais alterner avec ton dd (vaut mieux avoir plusieurs méthodes pour etre sûr !
merci
fred
RPi sur powerbank, bouton off/reset, domoticz (début avec Fhem sur dockstar), 4 sondes 1wire via rj45, ctrl des volets, tv/fbx, lumière, détecteurs d'ouverture, karotz, multiroom via pifm, ecodevice, ATI RF, et prg du mode arrêt des radiateurs via FP

fredclo
Messages : 89
Enregistré le : 28 févr. 2015, 16:57

Re: Backup carte SD complète sur freebox V6

Message par fredclo »

Bonjour,

Ma sdcard de 8 Go a pris 5 h à etre backupée (hyper long je trouve !), et pour finir sur 4 Go.
Peux-tu me dire combien ta 8Go fait au final ?
merci
fred
RPi sur powerbank, bouton off/reset, domoticz (début avec Fhem sur dockstar), 4 sondes 1wire via rj45, ctrl des volets, tv/fbx, lumière, détecteurs d'ouverture, karotz, multiroom via pifm, ecodevice, ATI RF, et prg du mode arrêt des radiateurs via FP

deennoo
Messages : 4019
Enregistré le : 25 janv. 2015, 02:00

Re: Backup carte SD complète sur freebox V6

Message par deennoo »

moi j ai un petit probleme au montage auto du disque dur de la freebox

Montage de la Freebox
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
Sauvegarde sur la Freebox
./image.sh: 28: ./image.sh: cannot create /mnt/freebox/Backup_img/srv-domoticz-11-03-2015-16:37:03.img.gz: Directory nonexistent
Démontage de la Freebox
umount: /mnt/freebox: not mounted

pourtant avant j ai bien fait :

sudo mkdir /mnt/freebox

une idee ?
De quoi se faire Plaisir et essayer d'aider...
http://www.domo-attitude.fr

deennoo
Messages : 4019
Enregistré le : 25 janv. 2015, 02:00

Re: Backup carte SD complète sur freebox V6

Message par deennoo »

deennoo a écrit :moi j ai un petit probleme au montage auto du disque dur de la freebox

Montage de la Freebox
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
Sauvegarde sur la Freebox
./image.sh: 28: ./image.sh: cannot create /mnt/freebox/Backup_img/srv-domoticz-11-03-2015-16:37:03.img.gz: Directory nonexistent
Démontage de la Freebox
umount: /mnt/freebox: not mounted

pourtant avant j ai bien fait :

sudo mkdir /mnt/freebox

une idee ?
j'ai un debut de réponse, et malgre une mount error 13 la sauvegarde a l air de ce faire, si cela fonctionne je tenvoie ma manip pour mettre a jour ton tuto Jose !

Combien de temps il faut en moyenne pour une sd de 8go en wifi ?
De quoi se faire Plaisir et essayer d'aider...
http://www.domo-attitude.fr

Répondre