Voici un exemple de script bash qui répond à vos exigences pour la sauvegarde et la suppression des backups antérieurs :
#!/bin/bash # Répertoire source à sauvegarder source_directory="/chemin/vers/le/repertoire/source" # Répertoire de destination pour les backups backup_directory="/chemin/vers/le/repertoire/de/backups" # Répertoire de destination pour les backups mensuels monthly_directory="/chemin/vers/le/repertoire/de/backups/mensuels" # Supprimer les backups antérieurs à 10 jours find "$backup_directory" -type f -mtime +10 -exec rm {} \; # Créer un répertoire pour la sauvegarde actuelle (nom basé sur la date et l'heure) backup_folder="$(date +%Y%m%d%H%M%S)" mkdir "$backup_directory/$backup_folder" # Copier les fichiers du répertoire source vers la sauvegarde actuelle cp -R "$source_directory" "$backup_directory/$backup_folder" # Compresser la sauvegarde tar -czf "$backup_directory/$backup_folder.tar.gz" "$backup_directory/$backup_folder" # Supprimer le répertoire non compressé rm -rf "$backup_directory/$backup_folder" # copie vers un serveur distant rsync -e "ssh -i /home/villersd/.ssh/id_rsa" "$backup_directory/$backup_folder.tar.gz" villersd@linus.umons.ac.be:/home/villersd/backup_sdds # Déplacer la sauvegarde mensuelle du premier jour du mois vers le répertoire mensuel if [ "$(date +%d)" = "01" ]; then monthly_folder="$(date +%Y%m)" mkdir -p "$monthly_directory/$monthly_folder" mv "$backup_directory/$backup_folder.tar.gz" "$monthly_directory/$monthly_folder" fi
Assurez-vous de remplacer les chemins d'accès réels pour source_directory, backup_directory et monthly_directory par les chemins appropriés sur votre système. Vous pouvez également ajuster les délais de suppression ou les noms de répertoires selon vos besoins.
Enregistrez ce script dans un fichier, par exemple backup.sh, puis rendez-le exécutable en utilisant la commande suivante :
chmod +x backup.sh
Vous pouvez ensuite exécuter le script en utilisant la commande suivante :
./backup.sh
Le script va créer un nouveau répertoire de sauvegarde basé sur la date et l'heure actuelles, copier les fichiers du répertoire source vers ce répertoire, compresser le répertoire de sauvegarde en un fichier tar.gz, puis supprimer le répertoire non compressé. Si la date actuelle correspond au premier jour du mois, le fichier de sauvegarde sera déplacé vers le répertoire mensuel spécifié.
N'oubliez pas d'adapter le script en fonction de vos besoins spécifiques et de tester attentivement avant de l'utiliser en production.
Oui, vous pouvez ajouter une condition supplémentaire pour le 15 du mois en utilisant l'opérateur logique “||” (ou). Voici la ligne complète modifiée :
if [ "$(date +%d)" = "01" ] || [ "$(date +%d)" = "15" ]; then
Avec cette modification, la sauvegarde sera déplacée vers le répertoire mensuel à la fois le premier jour et le quinzième jour de chaque mois.
Pour configurer efficacement et en respectant les règles de sécurité les clés SSH entre le serveur local (où se trouve le script de sauvegarde) et le serveur distant, vous pouvez suivre ces étapes :
ssh-keygen -t rsa -b 4096
ssh-copy-id -i ~/.ssh/id_rsa.pub utilisateur_distant@adresse_du_serveur
ssh utilisateur_distant@adresse_du_serveur
rsync -e "ssh -i /chemin/vers/clé_privée" fichier_sauvegarde utilisateur_distant@adresse_du_serveur:/chemin/destination
Veillez à protéger vos clés privées en les gardant sécurisées et en leur accordant des permissions appropriées (par exemple, en utilisant chmod 600). De plus, assurez-vous que les utilisateurs locaux et distants disposent des droits appropriés pour accéder aux fichiers et répertoires nécessaires.
Ces étapes vous permettront de configurer une connexion SSH sécurisée entre le serveur local et le serveur distant, en utilisant des clés SSH pour l'authentification sans mot de passe lors de l'utilisation de rsync.
Les options -e de rsync et -i de ssh ont les rôles suivants :
-e "ssh"
dans votre commande rsync. Si vous avez besoin de spécifier un fichier de clé privée SSH, vous pouvez utiliser
-e "ssh -i /chemin/vers/clé_privée"
-i /chemin/vers/clé_privée
pour spécifier le chemin complet vers votre clé privée lors de l'utilisation de ssh.
En combinant ces deux options, vous pouvez utiliser rsync avec une connexion SSH sécurisée en spécifiant la commande ssh à utiliser avec l'option -e et en spécifiant la clé privée à utiliser avec l'option -i.