====== 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