J'utilise un RamDisk sur mon Raspberry Pi afin de ne pas flinguer la carte microSD rapidement à cause de trop d'écritures. Car c'est vrai que le petit Domoticz il cause beaucoup.
Problème : cette partition montée en RAM a une petite taille (10 mo chez moi), et lorsqu'elle est pleine les services qui écrivent dessus ont tendance à ne pas apprécier.
J'ai donc développé un script qui permet de redémarrer le Raspberry avant que la partition ne soit pleine.
Le script shell
Le script est disponible sur mon dépôt github : CheckRamDiskFull.sh
Il vous suffit d'éditer les variables :
- MOUNT : point de montage à vérifier, celui du RamDisk dans mon cas
- MAXPERCENT : seuil au dessus duquel on déclenche un reboot du Raspberry Pi
Le script vérifie donc si la partition dépasse le seuil ou pas, et déclenche un reboot. Le reboot a pour effet de vider la RAM et donc toutes les données stockées dans cette partition seront perdues, ça tombe bien c'est ce que je cherche à faire.
Si au contraire vous souhaitez faire une copie des données de la partition avant le reboot il existe des scripts sur le web : 1, 2, 3.
Notez que le script appel un second script shell pour envoyer une notification email : RamDiskEmailNotif.sh :
Pensez aussi à le récupérer et l'éditer (exemple ici avec un seuil à 70%)
J'ai fait ce choix car je ne voulais pas installer de client mail (mailx ou autre) pour ne pas alourdir mon Raspberry Pi. J'avais initialement développé ce script pour mon routeur Tomato.
Lancement récurrent
Pour exécuter ce script quotidiennement c'est le crontab qui s'en charge à 5h30 :
30 5 * * * /root/CheckRamDiskFull.sh >/dev/null 2>&1
Conclusion
Grâce à ce script le Raspberry s'autogère et je n'ai plus à m'en occuper.
J'ai beaucoup moins de soucis depuis que c'est implémenté, notamment sur la partie dongle 3G qui envoie des SMS, car j'ai redirigé le log de gammu en ramdisk aussi et il n'aimait pas faire face à une partition pleine.
Auteur : Mr Xhark
Fondateur du blog et passionné par les nouvelles techno, suivez-moi sur twitter
2 commentaires
Yo,
Je suis étonné de la solution que tu as mise en place, un des pires trucs c'est quand même le reboot.
Pourquoi ne pas simplement déporter sur une clé USB ? Les logs sont si importants que ça sinon > /dev/null.
Tcho !
@Cascador: le reboot fait du bien de temps en temps. Dans mon cas cela provoque un reboot 1 fois par mois, et c'est de toutes façons nécessaire pour mon dongle 3G huawei qui déconne. Disons que j'ai simplement fait coup double. Oui les logs sont importants dans mon cas pour voir si les sondes de domoticz remontent correctement et surtout comprendre pourquoi quand ce n'est pas le cas. Mes ports USB sont tous déjà bien occupés 🙂