Ce script Bash utilise Unison pour synchroniser plusieurs répertoires entre une machine locale, une machine distante via SSH, et un disque dur externe. Voici une explication détaillée des fonctionnalités du script :
- REMOTE_USER : Nom d'utilisateur sur la machine distante.
- REMOTE_HOST : Adresse IP ou nom de domaine de la machine distante.
- REMOTE_BASE_DIR : Chemin de base du répertoire sur la machine distante.
- DISK_MOUNT_PATH : Chemin du disque dur externe monté.
- DIRS : Liste des répertoires locaux à synchroniser (exercism, Documents, bin, Images).
-
Vérification de l'accessibilité de la machine distante :
- La fonction check_ssh teste la connexion SSH à la machine distante. Si la connexion échoue, le script se termine avec un message d'erreur.
-
Vérification de l'accessibilité du disque dur :
- La fonction check_disk vérifie si le disque dur externe est monté et accessible. Si le disque dur n'est pas monté ou inaccessible, le script se termine avec un message d'erreur.
-
Synchronisation des répertoires locaux avec la machine distante :
- La boucle for parcourt les répertoires spécifiés et utilise Unison pour les synchroniser avec les répertoires correspondants sur la machine distante. L'option -ignore 'Path env' permet d'ignorer les dossiers env.
-
Synchronisation des répertoires locaux avec le disque dur externe :
- Une autre boucle for utilise Unison pour synchroniser les répertoires locaux avec les répertoires correspondants sur le disque dur externe. L'option -perms 0 est utilisée pour ignorer les permissions de fichiers.
- Définir les variables : Remplacez les valeurs dans les variables REMOTE_USER, REMOTE_HOST, et DISK_MOUNT_PATH avec les valeurs appropriées.
- Accorder les permissions d'exécution : Rendez le script exécutable avec chmod +x script.sh.
- Exécuter le script : Lancez le script avec ./script.sh.
Assurez-vous que les chemins et les permissions sont corrects avant d'exécuter le script pour éviter tout problème de synchronisation.