[Yunohost] Automatiser les sauvegardes à j-1, j-7 et j-30

Yunohost est une super solution d’auto-hébergement, j’y reviendrai. Et qui dit auto-hébergement dit responsabilité. En particulier la responsabilité de ne pas perdre de données, en cas de panne matérielle pour ne citer qu’un exemple.

Yunohost propose une solution simple pour lancer une sauvegarde depuis l’interface d’administration, mais ça demande donc un geste manuel. Alors autant automatiser tout cela.

J’ai créé un petit script pour effectuer des sauvegardes automatiques. Mon script supprime les anciennes sauvegardes en conservant certaines versions : la veille, l’avant veille, le dimanche précédent, le premier du mois, et le premier du mois précédent.

#!/bin/bash

# Creates a backup and removes some of the previous backups
# Backups are created with the following prefix
PREFIX="automatic-"
# All backups with the previous prefix are deleted except the following dates
TODAY=`date '+%Y-%m-%d'`
YESTERDAY=`date -d "yesterday" '+%Y-%m-%d'`
DAY_BEFORE_YESTERDAY=`date -d "2 days ago" '+%Y-%m-%d'`
LAST_SUNDAY=`date -d "last Sunday" '+%Y-%m-%d'`
BEGINNING_OF_MONTH=`date '+%Y-%m-01'`
BEGINNING_OF_LAST_MONTH=`date -d "last month" '+%Y-%m-01'`

yunohost backup create -n $PREFIX$TODAY
cd /home/yunohost.backup/archives
rm `ls | grep $PREFIX | grep -v "$TODAY\|$YESTERDAY\|$DAY_BEFORE_YESTERDAY\|$LAST_SUNDAY\|$BEGINNING_OF_MONTH\|$BEGINNING_OF_LAST_MONTH"`
yunohost backup list

Vous pouvez déposer ce script dans le répertoire /etc/cron.daily et il s’exécutera tous les jours. Il devrait aussi vous envoyer un mail tous les jours pour vous permettre de constater que le script fonctionne.

Ce script devrait donc vous fournir un premier niveau de protection en cas de perte de données. Je vous invite toutefois à deux précautions supplémentaires :

  • testez régulièrement vos sauvegardes pour s’assurer qu’il est possible de les restaurer (avec une machine virtuelle, c’est super simple et rapide à faire) ;
  • rapatrier les sauvegardes régulièrement sur un autre serveur, si possible délocalisé (chez un ami de confiance, chez vos parents, chez un hébergeur…) pour pouvoir les récupérer en cas de gros pépin (incendie, cambriolage, etc.)

J’espère que ceci vous aidera à minimiser l’impact d’un futur problème…


Souces : mon post sur le forum de Yunohost.
Photo by Samuel Zeller on Unsplash

[Debian] Perte du réseau après une mise en veille

Je n’avais pour ainsi dire jamais mis en veille mon PC fixe, je préférais le laisser allumer ou l’éteindre. Récemment, je me suis mis à plus l’utiliser, mais mon ordinateur perd le réseau en sortie de veille. C’est assez désagréable.

Le problème venait en fait d’un driver qui n’était pas rechargé après la mise en veille.

Identifier le driver

Pour connaître le driver de votre carte réseau, je vous conseille de passer par lshw (que vous aurez probablement besoin d’installer).

lshw -c network

Vous devriez voir dans le résultat une ligne de type

   configuration: […] driver=sky2 […] speed=1Gbit/s

Dans ce cas, de driver de ma carte est donc sky2.

Charger manuellement le driver après une perte de réseau

Quand le réseau ne marche plus, après une mise en veille, vous pouvez tester un changement manuel du pilote (à adapter évidemment selon le pilote trouvé au paragraphe précédent) :

modprobe sky2

Si cela fonctionne, il reste à automatiser ce geste

Charger automatiquement le driver au retour de la veille

Pour ce faire, créer un petit script exécutable qui se chargera de décharger et recharger proprement le driver :

!/bin/sh
case "$1" in
pre)
modprobe -r sky2
;;
post)
modprobe sky2
;;
esac

Pour finir, mettez ce script dans le répertoire /lib/systemd/system-sleep.

Voilà qui devrait fonctionner automatiquement en sortie de veille… problème résolu.


Sources : le script et la documentation de systemd.
Photo by rawpixel on Unsplash