Bonjour,
J'ai fait face à quelques déboires pour refaire marcher le script après avoir réinstallé complètement domoticz sous stretch.. mais j'ai fini par réussir à le refaire fonctionner (du moins j'espère que le zip est fonctionnel.. j'avoue ne jamais avoir essayé une restauration)
Alors je vous mets ici ce qui marche chez moi.
Il a fallu que je rajoute des "sudo", quebje remplace des service start/stop par du systemctl et un paramètre de plus dans le mount.cifs...
Pour l'installation:
- sudo apt-get install pigz
sudo mkdir /mnt/freebox
dans le script, rajouter des sudo sur les commandes et ajouter vers=1.0 comme paramètre dans le mount.cifs :
Code : Tout sélectionner
sudo /sbin/mount.cifs //mafreebox.freebox.fr/Disque\ dur /mnt/freebox -o _netdev,rw,username=$user_box,password=$pass_box,vers=1.0,iocharset=utf8,uid=1000,sec=ntlm,file_mode=0777,dir_mode=0777 0 0
Voici mon script :
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
#old script for duration handling
#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)))
#DEBUT_EN_SEC=$((9*3600+$(echo $H_DEPART | cut -d':' -f2)*60+$(echo $H_DEPART | cut -d':' -f3)))
#nouvelle gestion de duree avec %s qui donne la date en seconde depuis 1950
DATE_DEBUT=`date +%s`
DEBUT_EN_SEC=$DATE_DEBUT
# 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"
sudo /sbin/mount.cifs //mafreebox.freebox.fr/Disque\ dur /mnt/freebox -o _netdev,rw,username=$user_box,password=$pass_box,vers=1.0,iocharset=utf8,uid=1000,sec=ntlm,file_mode=0777,dir_mode=0777 0 0
# ancien montage (cf forum)
# /sbin/mount.cifs //mafreebox.freebox.fr/Disque\ dur/ /mnt/freebox/ -o user=$user_box,pass=$pass_box,sec=ntlm
# Sauvegarde sur la Freebox
echo "Sauvegarde sur la Freebox par pigz"
# ligne par gzip normal: dd if=/dev/mmcblk0 | gzip -9 > /mnt/freebox/Backup_img/srv-domoticz-${DATE_DEBUT}'-'$H_DEPART.img.gz
dd if=/dev/mmcblk0 | pigz -9 -p 3 > /mnt/freebox/Backup_img/srv-domoticz-pigz${DATE_DEBUT}'-'$H_DEPART.img.gz
# Démontage de la Freebox
echo "Démontage de la Freebox"
sudo /bin/umount /mnt/freebox
#Old script for duration
# Formatage de la date de fin et de l'heure
#DATE_FIN=`date +%d-%m-%Y`
#H_FIN=`date +%H:%M:%S`
DATE_FIN=`date +%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)))
FIN_EN_SEC=$DATE_FIN
# 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
echo $message
curl -s -i -k "https://smsapi.free-mobile.fr/sendmsg?user=$user&pass=$pass&msg=$message"
(à noter : je n'ai jamais réussi à faire marcher la notification par sms, mais je n'ai pas vraiment regardé non plus. j'ai aussi un soucis avec l'horodatage du fichier qui nécrit plus l'heure correctement)
Pour le lancement:
- sudo systemctl stop domoticz.service
cd /home/pi/domoticz/scripts/shell
sudo sh +x image_pigz.sh
sudo systemctl start domoticz.service
Voilà, j'espère que ça pourra aider quelqu'un.
Ricorico94