View

Backup quotidien de repertoires

  1. #!/bin/sh
  2. # Ce script est a appeler dans la crontab :
  3. # ~$ crontab -e
  4. # 0 6 * * * /home/benoit/make_backups.sh >>/home/benoit/backups_automatises.log
  5. # Dans l’exemple, ce script sera execute tous les jours a 6h00 du matin
  6. # sauvegarde d’un repertoire
  7. make_backup ()
  8. {
  9.         rep=$1
  10.         # Si un fichier porte deja ce nom, on le renomme (juste au cas ou)
  11.         if test -f “${rep}_${date_du_jour}.tar.gz”
  12.         then
  13.                 mv “${rep}_${date_du_jour}.tar.gz” “${rep}_${date_du_jour}_old.tar.gz” >> “$log” 2>> “$log”
  14.                 echo “Le fichier ${rep}_${date_du_jour}.tar.gz a ete renomme en ${rep}_${date_du_jour}_old.tar.gz” >> “$log”
  15.         fi
  16.         echo “SAUVEGARDE DE `echo $rep | tr [a-z] [A-Z]`…”  >> “$log”
  17.         # Sauvegarde du repertoire a la date du jour
  18.         tar -cf “${rep}_${date_du_jour}.tar” “${rep}” >> “$log” 2>> “$log”
  19.         gzip “${rep}_${date_du_jour}.tar”
  20.         echo “EFFECTUEE”  >> “$log”
  21.         # Suppression du fichier backup datant d’il y a trois jours
  22.         if test -f “${rep}_${avant_avant_hier}.tar.gz” && test -f “${rep}_${avant_hier}.tar.gz” && test -f “${rep}_${hier}.tar.gz”
  23.         then
  24.                 \rm -f “${rep}_${avant_avant_hier}.tar.gz” >> “$log” 2>> “$log”
  25.                 echo “Le fichier ${rep}_${avant_avant_hier}.tar.gz a ete supprime” >> “$log”
  26.         fi
  27.         echo “”  >> “$log”
  28. }
  29. repertoire_racine=“/home/benoit”
  30. log=“backups_automatises.log”
  31. date_du_jour=`date +‘%y%m%d’`
  32. hier=`date +‘%y%m%d’ -d ‘yesterday’`
  33. avant_hier=`date +‘%y%m%d’ -d ‘2 days ago’`
  34. avant_avant_hier=`date +‘%y%m%d’ -d ‘3 days ago’`
  35. cd “$repertoire_racine”
  36. echo “********************************************************************************” >> “$log”
  37. echo “”  >> “$log”
  38. echo “SAUVEGARDE DU `date +’%Y-%m-%d’` A `date +’%H:%M:%S’`”  >> “$log”
  39. echo “”  >> “$log”
  40. echo “”  >> “$log”
  41. make_backup “repertoire1”
  42. make_backup “repertoire2”
  43. exit 0

You may also like