Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5

[Snippet] Utilitaire de sauvegarde distant
#1

Ceci est un petit script que j'ai fait il y a quelques temps et qui permet de faire une sauvegarde à l'identique d'un répertoire et de ses sous-répertoires. A l'identique signifie que les fichiers modifiés sont mis à jour, les nouveaux sont ajoutés et les disparus supprimés.

Pour l'historique: mes projets web sont sur un NAS et je fais une sauvegarde en local et une sur un serveur distant, par précaution. A une époque, j'utilisais Cobian qui gère le ftp et les partages locaux, mais il était très lent et pas configurable comme je le souhaite.

La solution est venue par rsync et scp. La seule contrainte (si on veut) est que les environnements destinataires acceptent le rsync et d'avoir partagé une clé SSH.
Bash
#!/bin/bash
# Définition du répertoire local
LOCAL="/mnt/nas/web projects/"
# Définition des destinations
DISTS=("[email protected]:/home/user/saveweb/" "[email protected]:/saves/web/")
 
NOW=$(date +"%Y%m%d")
 
for DIST in "${DISTS[@]}"; do
   /bin/rsync -vrz --size-only --delete-after --exclude '*.tgz' --log-file="mysave_${NOW}.log" ${LOCAL}* ${DIST}
   /bin/scp -r ${LOCAL}databases/*.tgz ${DIST}
done
exit 0



Si on se plonge un peu dans la documentation de rsync, on se rend compte que le script:
- j'utilise rsync en mode récursif, verbeux (je veux un log) et avec une compression
- je me base uniquement sur les comparaisons de taille pour déclarer qu'un fichier est différent de ce qu'il y a sur le serveur
- les suppressions des fichiers sont effectuées après les transferts
- j'exclus les .tgz (les sauvegardes de mes bases)

Et après ça, j'utilise scp pour forcer l'upload de mes sauvegardes de bases de données
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)