Astuce macOS : Créer une sauvegarde automatique avec rsync et launchctl - Partie 2
Après avoir vu quelques unes des nombreuses capacités de rsync et avant de se plonger dans launchctl, prenons le temps de faire un petit script qui réalise l'ensemble de la sauvegarde que nous souhaitons faire. Cette seconde partie peut être considérée comme récréative, tant elle sera simple et rapide.
Vous serez d'ailleurs nombreux à passer directement à la suite, car il va s'agir ici de revoir les bases. Pour les néophytes, allons y !
Un script est un fichier texte rassemblant un ensemble de commande, que votre système va exécuter à la suite. Comme en programmation, il y est possible de d'utiliser des variables, mais aussi des structures conditionnelles. Ainsi vous pouvez faire des vérifications avec if ou encore des boucles avec for. Au final, si les scripts que l'on va voir dans cet articles resteront assez simples, il est possible de faire beaucoup de chose, et certains scripts peuvent vraiment être massifs.
Reprenons, un script est un fichier texte, il faut donc un éditeur capable d'écrire au format texte. Dans l'idée, le plus simple serait d'utiliser les éditeurs en ligne de commande qui sont disponibles avec macOS, tels que emacs ou nano. Mais si vous êtes frileux à l'idée de les utiliser, vous pouvez toujours utiliser un éditeur graphique. Eviter juste Word ou encore TextEdit, ou alors veillez bien à enregistrer votre fichier final au format texte brut.
Un fichier de script commence toujours par définir quel shell va exécuter le script, ici nous allons rester sur celui défini par défaut sur macOS : bash
#!/bin/bash
Si vous avez l'habitude d'un autre shell, comme zsh par exemple, vous pouvez toujours en changer. Mais cela ne sera vraiment intéressant que si vous utilisez des fonctionnalités spécifiques à un shell. Ici, ce n'est pas le cas !
Insérons les commandes rsync permettant de sauvegarder les dossiers.
#!/bin/bash
rsync -a /chemin/vers/le/dossier/Photos /dossier/de/sauvegarde/
rsync -a /chemin/vers/le/dossier/Media /dossier/de/sauvegarde/
Sauvegardons le fichier, sous le nom Backup.sh, et quittons.
Pour lancer le script manuellement, il faut rendre le fichier exécutable :
chmod u+x Backup.sh
Vous pouvez désormais lancer le script, simplement en l'appelant
Backup.sh
Attention, vous ne pouvez l'exécuter que depuis le dossier dans lequel il se trouve ou en indiquant son chemin complet. Si vous souhaitez le lancer, depuis n'importe où, il faut mettre le dossier qui le contient dans le "PATH".
Revenons sur notre script, si l'ont veut un peu plus de détail sur ce qu'il se passe, nous pouvons ajouter des lignes de description.
#!/bin/bash
echo 'Debut de la sauvegarde'
echo 'Sauvegarde du dossier Photos'
rsync -a /chemin/vers/le/dossier/Photos /dossier/de/sauvegarde/
echo 'Sauvegarde du dossier Media'
rsync -a /chemin/vers/le/dossier/Media /dossier/de/sauvegarde/
echo 'Fin de la sauvegarde'
Nous pourrions évidemment aller beaucoup plus loin, mais cela sera pour un autre article. Prochaine étape : l'intégrer dans launchd pour qu'il se lance automatiquement.