#Ce script permet d'aller chercher un dossier sur un serveur distant de manière automatique en utilisant sshpass pour faire des sauvegardes ; il faut également penser à utiliser crontab pour lancer le script automatiquement ; Bien penser à modifier les variables à personnaliser au début du script. #!/bin/bash apt install sshpass -y # Variables à personnaliser LOCAL_DIR="/dossier/pour/la/sauvegarde" # Dossier local pour la sauvegarde REMOTE_USER="user" # Utilisateur du serveur distant REMOTE_PASS="mdp" # Mot de passe du serveur distant REMOTE_HOST="127.0.0.1" # Adresse IP ou nom du serveur distant REMOTE_FOLDER="/chemin/vers/le/dossier" # Chemin absolu du dossier distant à récupérer SSH_PORT=22 # Port SSH du serveur distant # Vérification que le dossier local existe if [ ! -d "$LOCAL_DIR" ]; then echo "Erreur : Le répertoire local '$LOCAL_DIR' n'existe pas. Création en cours..." mkdir -p "$LOCAL_DIR" if [ $? -ne 0 ]; then echo "Erreur : Impossible de créer le répertoire '$LOCAL_DIR'." exit 1 fi fi # Vérification de la connexion SSH au serveur distant echo "Test de la connexion SSH au serveur distant..." sshpass -p "$REMOTE_PASS" ssh -p $SSH_PORT -o StrictHostKeyChecking=no "$REMOTE_USER@$REMOTE_HOST" exit if [ $? -ne 0 ]; then echo "Erreur : Impossible d'établir une connexion SSH avec $REMOTE_HOST sur le port $SSH_PORT." exit 1 fi # Transfert du dossier depuis le serveur distant echo "Transfert du dossier depuis $REMOTE_HOST:$REMOTE_FOLDER vers $LOCAL_DIR..." sshpass -p "$REMOTE_PASS" scp -r -P $SSH_PORT "$REMOTE_USER@$REMOTE_HOST:$REMOTE_FOLDER" "$LOCAL_DIR/" # Vérification de la réussite du transfert if [ $? -eq 0 ]; then echo "Le dossier '$REMOTE_FOLDER' a été correctement sauvegardé dans '$LOCAL_DIR'." else echo "Erreur : Échec du transfert du dossier '$REMOTE_FOLDER'." exit 1 fi