Copie de sécurité » Historique » Révision 13
Révision 12 (Patrice Nadeau, 2018-08-17 13:52) → Révision 13/19 (Patrice Nadeau, 2018-08-17 13:52)
# Copie de sécurité {{toc}} ## Création ### Méthode manuelle Remplacer les items suivants : * *username* : Usager de la base de donnés. * *password* : Mot de passe de la base de donnés. * *database* : Nom de la base de données. * *path* : Emplacement pour recevoir le fichier. ```bash <pre><code class="bash"> /usr/bin/mysqldump -u username -p password database | gzip > /path/redmine_`date +%y_%m_%d`.gz rsync -a /srv/redmine/files /path/ ``` </code></pre> ### Script un peu plus évolué ```bash #!/bin/bash # # backup_redmine.sh # Backup of a Redmine setup # Last Changes: 2013-02-23 # Maintainer: Patrice Nadeau <pnadeau@patricenadeau.com> # TODO Verify the results (folder exist, enough disk pace , etc..) ## The only variable needed to be changed # Directory of the Redmine install declare -r RAIL_ROOT='/srv/redmine' # MySQL database declare -r MYSQL_DB='' # MySQL username for the Redemine db declare -r MYSQL_USER='' # MySQL password for the Redemine db declare -r MYSQL_PASSWORD='' # Directory for the backup (must exist and with no space in the name) declare -r DIR='/root' ## end # Exit level declare -ir EXIT_OK=0 declare -ir EXIT_WARNING=1 declare -ir EXIT_ERROR=2 declare -i STATUS=$EXIT_OK # The directory inside the archive declare -r REDMINE='redmine' TMP_DIR=$DIR/$REDMINE # This will be used for the archive file declare -r DST=$DIR/redmine_$(date +%Y%m%d_%H%M%S).tar.gz # The temporary sql file declare -r TMP_MYSQL=$TMP_DIR/$MYSQL_DB.mysql echo "Backup in progress in $DST" #### Create the temp directory #### mkdir $TMP_DIR #### backup MySQL #### if [ $STATUS -eq $EXIT_OK ] then STEP='Creating MySQL backup' mysqldump --user=$MYSQL_USER --password=$MYSQL_PASSWORD $MYSQL_DB \ > $TMP_MYSQL STATUS=$? fi #### backup the Redmine folder #### if [ $STATUS -eq $EXIT_OK ] then STEP='Creating Redmine'"'"' files backup' cp --recursive $RAIL_ROOT $TMP_DIR STATUS=$? fi #### create the archive file #### if [ $STATUS -eq $EXIT_OK ] then STEP="Creating archive" tar --create --gzip --file $DST --directory=$DIR $REDMINE STATUS=$? fi #### cleanup #### if [ $STATUS -eq $EXIT_OK ] then STEP='Cleaning up' rm --recursive --force $TMP_DIR STATUS=$? fi #### exit #### if [ $STATUS -eq $EXIT_OK ] then echo "Backup done" else echo "Bakup failed with error code $STATUS in step $STEP" fi exit $STATUS ``` ### Mon script > Disponible à "dans la section fichiers":/attachments/download/137 #### Utilisation Simplement changer les 4 variables situées au début du script * 3 pour MySQL * 1 pour la destination de la copie Rendre le script exécutable * *chmod +x backup_redmine.sh* Et exécuter * *./backup_redmine.sh* h2. Récupération Sur un serveur avec Redmine déjà installé # Recopier le répertoire « Redmine » # Remettre la base de données. Remettre la base de données : <pre><code class="bash"> # Si la copie a été fait avec mysql mysql -u redmine -p < redmine.sql # Si la copie a été fait avec mysqldump mysqldump -u redmine -p < redmine.sql </code></pre> >En supposant : >* l'usager MySQL/MariaDB se nomme _redmine_ >* la base de donnes se nomme _redmine.mysql_