Tags: backup

Sort by: Date / Title /

  1. 9 years ago by benoitbalon
    1. mysqldump -h localhost -u user -ppassword -r/tmp/mysql_backup.data nomdatabase
    2.  
    3. mysql -h localhost -u user -ppassword nomdatabase < /tmp/mysql_backup.data
    Paste this in your website: <script type="text/javascript" src="http://www.posteet.com/embed/1761"></script>
  2. 11 years 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
    Paste this in your website: <script type="text/javascript" src="http://www.posteet.com/embed/672"></script>
  3. 11 years ago by benoitbalon
    Ces deux commandes fonctionneront à l'identique sur Windows. Sous GNU-Linux, il faut être root.
    1. # Backup de toutes les données du serveur ejabberd (JIDs, virtual hosts...) au format de fichier texte
    2. #/opt/ejabberd-1.1.4/bin/ejabberdctl dump /tmp/ejabberd.data
    3. /opt/ejabberd-2.0.2/bin/ejabberdctl backup /tmp/ejabberd.backup
    4.  
    5. # En éditant le fichier /tmp/ejabberd.data, il est possible de changer toutes les occurrences d'un virtual host (changement de nom de domaine par exemple)
    6.  
    7. # Restauration des données du serveur
    8. #/opt/ejabberd-1.1.4/bin/ejabberdctl load /tmp/ejabberd.data
    9. /opt/ejabberd-2.0.2/bin/ejabberdctl restore /tmp/ejabberd.backup
    Paste this in your website: <script type="text/javascript" src="http://www.posteet.com/embed/616"></script>
  4. sponsorised links
  5. 11 years ago by siddhy
    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
    Paste this in your website: <script type="text/javascript" src="http://www.posteet.com/embed/608"></script>
  6. 11 years ago by skymaxs and saved by 1 other
    Backup :
    mysqldump -u root -pSuperMotDePasse --all-databases > backup.sql
    
    Restauration :
    mysql -u root -pSuperMotDePasse < backup.sql
    Paste this in your website: <script type="text/javascript" src="http://www.posteet.com/embed/436"></script>
  7. 11 years ago by dave and saved by 3 others
    #
    #Fichier de configuration (backup-mysql.conf)
    #
    
    ###########################################################
    # Fichier de configuration pour le script backup-mysql.sh #
    ###########################################################
    
    
    #Serveur à backuper
    SERVER='localhost'
    
    #Utilisateur MySQL
    DBUSER='root'
    
    #Mot de passe MySQL
    DBPASS='viOvyornye'
    
    #On specifie les bases a backuper ("all" pour tout backuper)
    DB='all'
    
    #Date format
    DATE_FORMAT='+%d-%m-%Y'
    
    #Repertoire de backup
    BACKUP_DIR='/var/backup/mysql/'
    
    #Repertoire du jour
    TODAY_DIR=$(date $DATE_FORMAT)
    
    #Nomre de backups a conserver (en jours)
    HISTORY='7'
    
    #Type de compression (bzip2/gzip)
    COMP_TYPE='bzip2'
    
    #Creer un repertoire pour chaque base de donnees (yes/no)
    SEP_DB='yes'
    
    #Separer les tables en differents fichiers (yes/no)
    SEP_TABLE='yes'
    
    #Options pour le dump
    #Utiliser 'man mysqldump' ou aller sur la configuration pour plus de details
    OPTS='--default-character-set=latin1 --skip-extended-insert'
    
    #Fichier de logs
    LOG_FILE='/tmp/backup.log'
    
    #Adresse mail pour les logs d'execution du script
    MAIL_ADDR='admin@domain.tld'
    
    #
    #Script de backup MySQL 
    #
    
    #!/bin/bash 
    
    CONF_PATH='/etc'
    CONF_FILE='backup-mysql.conf'
    
    if [ ! -d "$CONF_PATH" ] || [ ! -f "$CONF_PATH/$CONF_FILE" ]; then
            echo "File : $CONF_PATH/$CONF_FILE missing !"
            exit 1;
    else
            . "$CONF_PATH/$CONF_FILE"
    fi
    
    send-mail () {
            cat "$LOG_FILE" | mail -s "Rapport d'execution du script $(basename $0) sur $HOSTNAME" $MAIL_ADDR
            rm "$LOG_FILE"
    }
    
    check_dirs () {
            #On verifie si le repertoire de backup existe
            if [ ! -d "$BACKUP_DIR" ]; then
                    echo "$BACKUP_DIR n'existe pas." >> "$LOG_FILE"
                    send-mail
                    exit 1;
            fi
            #On verifie si le repertoire du jour existe
            if [ ! -d "$BACKUP_DIR/$TODAY_DIR" ]; then
                    mkdir "$BACKUP_DIR/$TODAY_DIR"
            fi
            #On supprime le backup le plus ancien
            TO_DELETE=$(date --date "$HISTORY days ago" $DATE_FORMAT)
            if [ -d "$BACKUP_DIR/$TO_DELETE" ]; then
                    rm -r "$BACKUP_DIR/$TO_DELETE"
            fi
    }
    
    backup () {
            if [ -z "$1" ]; then
                    echo 'Liste des bases non transmise' >> $LOG_FILE
                    send-mail
                    exit 1;
            else
                    if [ "$SEP_DB" == 'yes' ]; then
                            for DB_TO_BACKUP in $1; do
                                    #On cree le repertoire pour separer les bases
                                    mkdir "$BACKUP_DIR/$TODAY_DIR/$DB_TO_BACKUP"
                                    if [ "$SEP_TABLE" == 'yes' ]; then
                                            for TABLE_TO_BACKUP in $(mysql -h$SERVER -u$DBUSER -p$DBPASS --skip-column-names $DB_TO_BACKUP -e "show tables"); do
                                                    mysqldump -h"$SERVER" -u"$DBUSER" -p"$DBPASS" $OPTS "$DB_TO_BACKUP" "$TABLE_TO_BACKUP" | "$COMP_TYPE" > "$BACKUP_DIR/$TODAY_DIR/$DB_TO_BACKUP/$DB_TO_BACKUP-$TABLE_TO_BACKUP-$TODAY_DIR.$FILE_EXT"
                                            done
                                    else 
                                            mysqldump -h"$SERVER" -u"$DBUSER" -p"$DBPASS" $OPTS "$DB_TO_BACKUP" "$TABLE_TO_BACKUP" | "$COMP_TYPE" > "$BACKUP_DIR/$TODAY_DIR/$DB_TO_BACKUP/$DB_TO_BACKUP-$TODAY_DIR.$FILE_EXT"
                                    fi
                            done
                                    
                    else
                            if [ "$SEP_TABLE" == 'yes' ]; then
                                    for DB_TO_BACKUP in $1; do
                                            for TABLE_TO_BACKUP in $(mysql -h$SERVER -u$DBUSER -p$DBPASS --skip-column-names $DB_TO_BACKUP -e "show tables"); do
                                            mysqldump -h"$SERVER" -u"$DBUSER" -p"$DBPASS" $OPTS "$DB_TO_BACKUP" "$TABLE_TO_BACKUP" | "$COMP_TYPE" > "$BACKUP_DIR/$TODAY_DIR/$DB_TO_BACKUP-$TABLE_TO_BACKUP-$TODAY_DIR.$FILE_EXT"
                                            done
                                    done
                            else
                                    mysqldump -h"$SERVER" -u"$DBUSER" -p"$DBPASS" $OPTS --all-databases | "$COMP_TYPE" > "$BACKUP_DIR/$TODAY_DIR/$TODAY_DIR.$FILE_EXT"
                            fi
                    fi
            fi
    }
    
    # On cree le fichier de log
    touch "$LOG_FILE"
    # on verifie que les bases a backuper sont bien renseignees
    if [ -z "$DB" ]; then
            echo 'variable $DB vide.' >> "$LOG_FILE"
            send-mail
            exit 1;
    elif [ "$DB" == "all" ]; then
            DB_LIST=$(mysql -h$SERVER -u$DBUSER -p$DBPASS --skip-column-names -e "show databases" | xargs)
    else
            DB_LIST="$DB"
    fi      
    # On verifie que la compression est correcte
    if [ "$COMP_TYPE" == 'bzip2' ]; then
            FILE_EXT='sql.bz2'
    elif [ "$COMP_TYPE" == 'gzip' ]; then
            FILE_EXT='sql.gz'
    else
            echo '$COMP_TYPE non spécifié.' >> "$LOG_FILE"
            send-mail
            exit 1;
    fi
    
    check_dirs
    backup "$DB_LIST"
    
    #On verifie si le fichier de logs existe et qu'il est vide
    if [ -f "$LOG_FILE" ] && [ "$(cat $LOG_FILE | wc -l)" -eq 0 ]; then
            #Si il est vide on efface
            rm "$LOG_FILE"
    else
            #Sinon on envoie le rapport
            send-mail
    fi
    Paste this in your website: <script type="text/javascript" src="http://www.posteet.com/embed/317"></script>
  8. 11 years 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
    Paste this in your website: <script type="text/javascript" src="http://www.posteet.com/embed/125"></script>
  9. 11 years ago by neorom and saved by 2 others
    3ème version plus complète des backups
    1. #!/bin/bash
    2.  
    3. TAR_COMPRESS="tar cjvf" # Commande de compression
    4. BACKUP_EXTENSION="tar.bz2" # Extension des fichiers compressés
    5. DATE=`date '+%d-%m-%Y'`
    6. BACKUP_ADDRESS="sav@server.org"
    7. BACKUP_DIR="/directory"
    8.  
    9.  
    10.  
    11. echo "Sauvegarde des fichiers"
    12.  
    13. echo "On sauvegarde et on envoie le home"
    14. cd /home
    15. for i in `ls`
    16. do
    17.                 $TAR_COMPRESS $i-$DATE.$BACKUP_EXTENSION /home/$i/*
    18.                 echo "`date` debut scp $i" >> /var/log/backup.log
    19.                 scp $i-$DATE.$BACKUP_EXTENSION $BACKUP_ADDRESS:$BACKUP_DIR
    20.                 echo "`date` fin scp $i" >> /var/log/backup.log
    21.                 rm -f $i-$DATE.$BACKUP_EXTENSION
    22. done
    23.  
    24. echo "On sauvegarde et on envoie le home du root "
    25. $TAR_COMPRESS root-$DATE.$BACKUP_EXTENSION /root/
    26. echo "`date` debut scp /root" >> /var/log/backup.log
    27. scp root-$DATE.$BACKUP_EXTENSION $BACKUP_ADDRESS:$BACKUP_DIR
    28. echo "`date` fin scp /root" >> /var/log/backup.log
    29. rm -f root-$DATE.$BACKUP_EXTENSION
    30. echo "On sauvegarde et on envoie le etc"
    31. $TAR_COMPRESS etc-$DATE.$BACKUP_EXTENSION /etc/
    32. echo "`date` debut scp /etc" >> /var/log/backup.log
    33. scp etc-$DATE.$BACKUP_EXTENSION $BACKUP_ADDRESS:$BACKUP_DIR
    34. echo "`date` fin scp /etc" >> /var/log/backup.log
    35. rm -f etc-$DATE.$BACKUP_EXTENSION
    36.  
    37. echo "On passe au dump MySQL"
    38. MYSQL_USER="root" # User mySQL à utiliser pour faire le dump
    39. MYSQL_PASSWORD="pass" # Mot de passe root de la base mySQL
    40. MYSQL_HOST="localhost" # Host de la base mySQL
    41. SQL_LIST_DB="SHOW DATABASES;" # Requete SQL listant toutes les bases
    42.  
    43. cd /home/backup/dumpsql
    44. echo "Dump de toutes les bases MySQL"
    45. mysqldump -p"$MYSQL_PASSWORD" --all-databases > all-databases.$DATE.sql
    46.  
    47. echo "Compression et envoie du dump"
    48. $TAR_COMPRESS  all-databases-$DATE.sql.$BACKUP_EXTENSION all-databases.$DATE.sql
    49. echo "`date` debut scp all databases" >> /var/log/backup.log
    50. scp all-databases-$DATE.sql.$BACKUP_EXTENSION $BACKUP_ADDRESS:$BACKUP_DIR
    51. echo "`date` fin scp all databases" >> /var/log/backup.log
    52. rm -f all-databases.$DATE.sql
    53. rm -f all-databases-$DATE.sql.$BACKUP_EXTENSION
    54.  
    55. echo "Dump base par base"
    56. for database in `echo $SQL_LIST_DB | mysql -u $MYSQL_USER -p"$MYSQL_PASSWORD" -h $MYSQL_HOST | sed 1d`
    57. do
    58.  
    59.         mysqldump -p"$MYSQL_PASSWORD" --databases $database > $database-$DATE.sql
    60.  
    61.         $TAR_COMPRESS $database-$DATE.sql.$BACKUP_EXTENSION $database-$DATE.sql
    62.         rm -f $database-$DATE.sql
    63. done
    64.  
    65. echo "On sauvegarde le dump des bases et on l'envoie"
    66. $TAR_COMPRESS dump-$DATE.$BACKUP_EXTENSION *.*.sql.$BACKUP_EXTENSION
    67. echo "`date` debut scp base par base" >> /var/log/backup.log
    68. scp dump-$DATE.$BACKUP_EXTENSION $BACKUP_ADDRESS:$BACKUP_DIR
    69. echo "`date` fin scp base par base" >> /var/log/backup.log
    70. rm -f dump-$DATE.$BACKUP_EXTENSION
    Paste this in your website: <script type="text/javascript" src="http://www.posteet.com/embed/13"></script>
  10. 11 years ago by neorom
    1. #rsync de synchronisation de repertoire avec copie des modifs
    2. rsync -rtlvz  --delete /mnt/reseau/ /backup/
    Paste this in your website: <script type="text/javascript" src="http://www.posteet.com/embed/6"></script>

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