Tags: bash,backup

Sort by: Date / Title /

  1. 7 months ago by gameplayer and saved by 1 other
    Pensez a fixer les deux paramètres pathRepo et pathBackup. Merci de me laisser un commentaire si vous en sentez le besoin.
    1. #!/bin/bash
    2. # Script de sauvegarde incrémentale d'un dépôt subversion
    3. # Il est possible de provoquer une sauvegarde complète en supprimant le dossier version ou son contenu
    4. # Paramètres
    5. # Chemin du dépôt à sauvegarder
    6. pathRepo="/chemin/repository";
    7. # Chemin du dossier de sauvegarde
    8. pathBackup="/chemin/dossier/sauvegarde";
    9. # Chemin du dossier pour mémoriser la dernière version sauvegardée
    10. pathNumVersion=$pathBackup"/version";
    11. # Chemin du fichier de logs
    12. pathLog=$pathBackup"/backup.log";
    13. # Nom du fichier (compris entre la date et l'extension)
    14. fileName="backup_svn";
    15. # Format de la date
    16. # Pour le nom du fichier
    17. dateFileFormat="+%Y%m%d";
    18. # Pour le log
    19. dateLogFormat="+%Y-%m-%d %H:%M";
    20.  
    21. # Vérifications
    22. # Vérification de l'existence des dossiers de travail
    23. if [ ! -d $pathBackup ]; then
    24.         echo "Dossier $pathBackup inexistant";
    25.         exit 1;
    26. fi
    27.  
    28. echo "[$(date "$dateLogFormat")] Début de la sauvegarde" >> $pathLog;
    29.  
    30. # Création du dossier de la version si il n'existe pas
    31. if [ ! -d $pathNumVersion ]; then
    32.         mkdir $pathNumVersion;
    33. fi
    34.  
    35. numVersionLastBackup=$(ls $pathNumVersion);
    36. if [ "$numVersionLastBackup" = "" ]; then
    37.         touch "$pathNumVersion/1";
    38.         numVersionLastBackup=1;
    39. fi
    40.  
    41. if [ $numVersionLastBackup -gt 1 ]; then
    42.         backupIncremental=" --incremental";
    43.         typeBackup="incr";
    44. else
    45.         typeBackup="full";
    46. fi
    47.  
    48. # Vérification de l'existance du dépôt
    49. if  ! (svnlook info $pathRepo 2>>$pathLog 1>"/dev/null") ; then
    50.         echo "[$(date "$dateLogFormat")] ERREUR : Repository $pathRepo inexistant" >> $pathLog;
    51.         echo "[$(date "$dateLogFormat")] Fin de l'exécution - Sauvegarde non effectuée" >> $pathLog;
    52.         exit 1;
    53. fi
    54.  
    55. # Récupération de la dernière version présente dans le dépôt
    56. youngestSvnVersion=$(svnlook youngest $pathRepo);
    57. echo "[$(date "$dateLogFormat")] Version la plus récente : $youngestSvnVersion" >> $pathLog;
    58.  
    59. if [ $numVersionLastBackup -gt $youngestSvnVersion ]; then
    60.         echo "[$(date "$dateLogFormat")] La version la plus récente est la version sauvegardée, la sauvegarde n'est donc pas nécéssaire" >> $pathLog;
    61.         echo "[$(date "$dateLogFormat")] Fin de la sauvegarde" >> $pathLog;
    62.         exit 0
    63. fi
    64.  
    65. # Lancement effectif de la sauvegarde
    66. if (svnadmin dump -r$numVersionLastBackup:$youngestSvnVersion$backupIncremental $pathRepo 2>>$pathLog | bzip2 > "$pathBackup/$(date "$dateFileFormat")_"$fileName"_"$typeBackup"_"$numVersionLastBackup"_to_"$youngestSvnVersion".svndump.bz2") ; then
    67.         echo "[$(date "$dateLogFormat")] Mise à jour du numéro de version" >> $pathLog;
    68.         mv $pathNumVersion/$numVersionLastBackup $pathNumVersion/$(($youngestSvnVersion + 1));
    69. else
    70.         echo "[$(date "$dateLogFormat")] Erreur lors de la sauvegarde" >> $pathLog;
    71.         echo "[$(date "$dateLogFormat")] Fin de l'exécution - Sauvegarde non effectuée" >> $pathLog;
    72.         exit 1;
    73. fi
    74.  
    75. echo "[$(date "$dateLogFormat")] Fin de la sauvegarde" >> $pathLog;
    76. exit 0
  2. 8 months ago by benoitbalon and saved by 1 other
    1. #!/bin/sh
    2.  
    3. # Ce script est a appeler dans la crontab :
    4. # ~$ crontab -e
    5. # 0 6 * * * /home/benoit/make_backups.sh >>/home/benoit/backups_automatises.log
    6. # Dans l'exemple, ce script sera execute tous les jours a 6h00 du matin
    7.  
    8. # sauvegarde d'un repertoire
    9. make_backup ()
    10. {
    11.         rep=$1
    12.        
    13.         # Si un fichier porte deja ce nom, on le renomme (juste au cas ou)
    14.         if test -f "${rep}_${date_du_jour}.tar.gz"
    15.         then
    16.                 mv "${rep}_${date_du_jour}.tar.gz" "${rep}_${date_du_jour}_old.tar.gz" >> "$log" 2>> "$log"
    17.                 echo "Le fichier ${rep}_${date_du_jour}.tar.gz a ete renomme en ${rep}_${date_du_jour}_old.tar.gz" >> "$log"
    18.         fi
    19.        
    20.         echo "SAUVEGARDE DE `echo $rep | tr [a-z] [A-Z]`..."  >> "$log"
    21.  
    22.         # Sauvegarde du repertoire a la date du jour
    23.         tar -cf "${rep}_${date_du_jour}.tar" "${rep}" >> "$log" 2>> "$log"
    24.         gzip "${rep}_${date_du_jour}.tar"
    25.        
    26.         echo "EFFECTUEE"  >> "$log"
    27.        
    28.         # Suppression du fichier backup datant d'il y a trois jours
    29.         if test -f "${rep}_${avant_avant_hier}.tar.gz" && test -f "${rep}_${avant_hier}.tar.gz" && test -f "${rep}_${hier}.tar.gz"
    30.         then
    31.                 \rm -f "${rep}_${avant_avant_hier}.tar.gz" >> "$log" 2>> "$log"
    32.                 echo "Le fichier ${rep}_${avant_avant_hier}.tar.gz a ete supprime" >> "$log"
    33.         fi
    34.        
    35.         echo ""  >> "$log"
    36. }
    37.  
    38. repertoire_racine="/home/benoit"
    39. log="backups_automatises.log"
    40. date_du_jour=`date +'%y%m%d'`
    41. hier=`date +'%y%m%d' -d 'yesterday'`
    42. avant_hier=`date +'%y%m%d' -d '2 days ago'`
    43. avant_avant_hier=`date +'%y%m%d' -d '3 days ago'`
    44.  
    45. cd "$repertoire_racine"
    46.  
    47. echo "********************************************************************************" >> "$log"
    48. echo ""  >> "$log"
    49. echo "SAUVEGARDE DU `date +'%Y-%m-%d'` A `date +'%H:%M:%S'`"  >> "$log"
    50. echo ""  >> "$log"
    51. echo ""  >> "$log"
    52.  
    53. make_backup "repertoire1"
    54. make_backup "repertoire2"
    55.  
    56. exit 0
  3. 9 months ago by xavier
    1. #!/bin/bash
    2.  
    3. prefixe=backup
    4. suffixe=$(date +%Y%m%d)
    5. filename=$prefixe$suffixe.sql
    6. host=host
    7. database=database
    8. user=user
    9. characterSet=UTF8
    10.  
    11. mysqldump --skip-comments \
    12. --complete-insert \
    13. --default-character-set=$characterSet \
    14. --no-create-info \
    15. --skip-add-locks \
    16. --skip-opt \
    17. --host $host \
    18. --user $user \
    19. -p $database > $filename
    20.  
    21. sed -i "1iuse $database;\nSET CHARACTER SET '$characterSet';" $filename
    22. exit 0

First / Previous / Next / Last / Page 1 of 1 (3 posteets)