Tu veux dire des micro SD "SANDISK" ?
Si oui c'est ce que j'ai à la maison, après je connais pas la fiabilité de ces cartes mais bon chez moi ça tourne pour le moment.
Pour la partie script de backup, il y a n1c0l45 qui a fait un très bon tuto dans la bibliothèque des scripts pour la backup, tu peux t''en inspirer pour les sources à installer et la configuration des variables. (lien de son tuto :
https://easydomoticz.com/forum/viewtopi ... =17&t=2759)
Le plus important c'est installer l'utilitaire pgiz qui va permettre de compresser ta backup pour pas avoir 32Go en ISO, techniquement il va compresser que l'espace libre que tu utilises pas ^^ mais c'est tjs ça de gagné !
Sinon voici le script que j'utilise chez moi, il permet de :
- monter la partition où tu veux backup ton rpi et la démonter à la fin
- vérifier si la partition est bien montée
- backuper complètement la partition de ton rpi à chaud en la compressant
- backuper la base de donnée de domoticz en la compressant
- pour chaque backup il crée un dossier avec la date et il met tout dedans
- à la fin de la backup il vérifie si la backup n'est pas vide et si elle correspond à peu près à la taille normale d'une backup compressée
- il met à jour une variable domoticz de type virtual_switch "TEXT" en fonction de la réussite ou non et de l'erreur
le script :
#!/bin/bash
# FULL RASPI SERVER BACKUP
# run each Sunday night
# Last modif : 21/08/2015
# Set variables
DOMO_IP="192.168.0.XXX"
DOMO_PORT="8080"
DATE=$(date +"%Y-%m-%d")
Raspi_Name=$(uname -n)
Dir_Path=
/mnt/BackUp_Raspberry/$DATE
File_Name=SD-Backup_$Raspi_Name\_$DATE.img.gz
#echo $File_Name
File_Path=$Dir_Path/$File_Name
#echo $File_Path
Log_File=
/home/pi/myDomoticzScripts/logs/backup_Full_$DATE
#echo $Log_File
DB_Backup=domoticzDB_$DATE.db.gz
#echo $DB_Backup
DB_Backup_Path=$Dir_Path/$DB_Backup
#echo $DB_Backup_Path
#START PROCESS
echo "********" > $Log_File
echo BACKUP CARTE SD - Process started : $DATE $(date +%HH%M) >> $Log_File
#Mount Backup partition
sudo mount
//192.168.xxx.xxx/BackUp_Raspberry /mnt/BackUp_Raspberry -o username=xxxx,password=xxxx,uid=1000,gid=1000
sleep 70
#CHECK IF PARTITION IS WELL MOUNTED
echo BACKUP CARTE SD - CHECK IF PARTITION IS MOUNTED : $DATE $(date +%HH%M) >> $Log_File
if [ `mount | grep -c
/mnt/BackUp_Raspberry` != 0 ]
then
#PARTITION IS MOUNTED - START BACKUP
echo BACKUP CARTE SD - PARTITION MOUNTED [OK] : $DATE $(date +%HH%M) >> $Log_File
# Create dir backup
mkdir $Dir_Path
# START BACKUP
## Full backup
echo BACKUP CARTE SD - FULL BACKUP Started : $DATE $(date +%HH%M) >> $Log_File
sudo dd if=
/dev/mmcblk0 | pigz -9 -p 3 > $File_Path
echo BACKUP CARTE SD - FULL BACKUP Ended : $DATE $(date +%HH%M) >> $Log_File
## Database backup
### Create backup and ZIP it
echo BACKUP CARTE SD - DATABASE Domoticz Started : $DATE $(date +%HH%M) >> $Log_File
sudo /usr/bin/curl -s http://$DOMO_IP:$DOMO_PORT/backupdatabase.php | pigz -9 -p 3 > $DB_Backup_Path
echo BACKUP CARTE SD - DATABASE Domoticz Ended : $DATE $(date +%HH%M) >> $Log_File
#END PROCESS
echo BACKUP CARTE SD - Process finished : $DATE $(date +%HH%M) >> $Log_File
#START CHECK BACKUP
echo CHECK BACKUP SD - Start checks >> $Log_File
#Check si backup existe
if [ -f $File_Path ]
then
#Le fichier existe
echo CHECK BACKUP SD - FILE existe >> $Log_File
#On recup la taille du fichier et on larrondi a lunite
taille_file=$(ls -la
/mnt/BackUp_Raspberry/$DATE/ | grep SD | awk '{print $5}')
taille_unite=$(($taille_file/1024/1024/1024))
echo CHECK BACKUP SD - Taille FILE = $taille_unite >> $Log_File
#
On check si la taille est superieur ou egale a 3
if [ $taille_unite -ge
3 ]
then
#La backup est bonne
echo CHECK BACKUP SD - Backup verif [OK] >> $Log_File
#On update la variable domoticz
url=
"http://127.0.0.1:8080/json.htm?type=com ... 20%5BOK%5D"
curl $url
else
#La backup nest pas complete
echo CHECK BACKUP SD - Backup verif [NOT COMPLETE] >> $Log_File
#On update la variable domoticz
url=
"http://127.0.0.1:8080/json.htm?type=com ... OMPLETE%5D"
curl $url
fi
else
#La backup nexiste pas
echo CHECK BACKUP SD - Backup verif [NO BACKUP FILE] >> $Log_File
#On update la variable domoticz
url=
"http://127.0.0.1:8080/json.htm?type=com ... %20FILE%5D"
curl $url
fi
#Umount Backup partition
sudo umount
/mnt/BackUp_Raspberry
#Reboot raspberry
sudo reboot
#PARTITION BACKUP NOT MOUNTED
# BACKUP NOT START
else
#On log l'erreur
echo BACKUP CARTE SD - PARTITION NOT MOUTED [ERROR IN MOUNT] >> $Log_File
echo BACKUP CARTE SD - PARTITION NOT MOUTED [NO BACKUP] >> $Log_File
#On update la variable domoticz
url=
"http://127.0.0.1:8080/json.htm?type=com ... MOUNTED%5D"
curl $url
fi
Je t'ai mis en rouge les modifications que tu dois faire en fonction de ton installation chez toi. Après le script est vraiment brute de pomme je me rend compte qu'il est pas super optimisé mais il fait le job
Pour la partie vérification de la taille de la sauvegarde, tu peux faire une backup à la main sans script tu remplaces le File_Path par l'endroit où tu veux stocker ta backup.
Après tu regardes quand elle a fini combien de Go elle fait et tu édites dans le script le "3" en fonction du nombre de Go de la tienne, pas besoin des unités, juste l'entier en Go, chez moi je sais qu'elle fait entre 3 et 4 Go :
Code : Tout sélectionner
#On recup la taille du fichier et on larrondi a lunite
taille_file=$(ls -la /mnt/BackUp_Raspberry/$DATE/ | grep SD | awk '{print $5}')
taille_unite=$(($taille_file/1024/1024/1024))
echo CHECK BACKUP SD - Taille FILE = $taille_unite >> $Log_File
#On check si la taille est superieur ou egale a 3
if [ $taille_unite -ge 3 ]
Après c'est la classique, tu rends ton script exécutable avec un chmod +x "nom du script" et tu peux le planifier comme tu veux avec la crontab. (Cf : le post de n1c0l45 plus haut)
Pour info ma carte SD de 16Go est sauvegardée en 1h20, le script fonctionne avec un Rpi 2 et 3 pas en dessous car à un moment dans le script on met
pigz -9 -p 3
le -p 3 correspond au nombre de coeur CPU qu'on alloue à la compression pour aller plus vite

donc 3 sur les 4 d'un rpi 2 et 3.
N'hésite pas à me demander s'il y a quelque chose qui ne te parait pas clair ou si tu veux plus d'info. Je suis pas un pro de la qualité du scripting et encore moins pour les rendre partageable facilement
@Dispo