#Ce script permet d'aller chercher un fichier 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_FILE="/chemin/vers/le/fichier" # Chemin absolu du fichier 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 fichier depuis le serveur distant echo "Transfert du fichier depuis $REMOTE_HOST:$REMOTE_FILE vers $LOCAL_DIR..." sshpass -p "$REMOTE_PASS" scp -P $SSH_PORT "$REMOTE_USER@$REMOTE_HOST:$REMOTE_FILE" "$LOCAL_DIR/" # Vérification de la réussite du transfert if [ $? -eq 0 ]; then echo "Le fichier '$REMOTE_FILE' a été correctement sauvegardé dans '$LOCAL_DIR'." else echo "Erreur : Échec du transfert du fichier '$REMOTE_FILE'." exit 1 fi