====== Sauvegardes automatiques de jeux via git ======
* Objet : Sauvegarder automatiquement les sauvegardes des jeux
* Niveau requis : {{tag>débutant}}
* Commentaires : //Utiliser Git et inotify pour sauvegarder automatiquement des fichiers de jeux dès qu'ils sont modifiés.//
* Débutant, à savoir :
* [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-)
* [[:doc:systeme:git:git|Git, suivi de versions]]
===== Introduction =====
Certains jeux ne proposent pas de sauvegarder/charger les parties, ou ont une interface qui facilite la perte de parties. Git et inotify nous aident à palier à ce problème.
* git est un outils de suivi de versions permettant notamment de garder trace de toutes les versions antérieures d'un fichier et des fichiers d'un répertoire.
* inotify est un outil captant les événements de création/modification/etc. de fichiers du système, envoyés par le noyau.
===== Installation =====
apt install git inotify-tools
===== Utilisation =====
==== Première utilisation ====
Lors de la première utilisation, vous devez initialiser le dépôt git du dossier contenant les sauvegardes.
cd /le_repertoire_contenant_les_sauvegardes/
git init
==== Avant le lancement du jeu ====
while inotifywait -e modify -e create .
do
git add .
git commit -m "Nouvelle sauvegarde…"
# pour limiter les sauvegardes à 1 par minute même si le jeu sauvegarde plus fréquemment
sleep 1m
done
==== Pour revenir en arrière ====
- Fermer le jeu
- Interrompre la boucle ''while'' ci-dessus avec un ctrl-c si nécessaire
- Afficher le log :
cd /le_repertoire_contenant_les_sauvegardes/
git log
- Identifier le hash du commit de la sauvegarde à laquelle vous voulez revenir.
- Restaurer la sauvegarde :
git reset --hard lehashducommit
Vous pouvez ensuite relancer la boucle et relancer le jeu.
==== Notes ====
=== Si les fichiers de sauvegarde ne sont pas isolés dans un dossier ===
Simplement adapter le ''git add'' en rajoutant un //pattern//:
while inotifywait -e modify -e create .
do
git add *.sav
git commit -m "Nouvelle sauvegarde…"
# pour limiter les sauvegardes à 1 par minute même si le jeu sauvegarde plus fréquemment
sleep 1m
done