Double en danger

Rédigé par zeph - - aucun commentaire

Je suis originaire de la Double dans le département de la Dordogne en France:

Une propriété agricole vient d'être achetée par le groupe des casinos Tranchant, le but aménager un ball trap pour personne de la haute société !

 

On ne fera pas évoluer l'agriculture en vendant les terrains agricoles en y installant des loisirs polluant pour une minorité.

Les risques de nuisances environnementales sont multiples :

  • Nuisances acoustiques
  • Nuisances chimiques
  • Le tourisme et l’économie locale

Pour plus d'information une association a vu le jour, Double en danger.

  • La Double est un endroit paisible ou il fait bon vivre et se reposer.
  • Sa forêt est une partie des poumons de la France.
  • Ne sacrifions pas un havre de paix, pour une poigné de personnes n'ayant aucun respect pour autrui.

Je lance un appel pour qu'un maximum de personnes se mobilisent contre ce projet.

Si comme moi vous ne souhaitez pas ce genre de projet vous pouvez signer la pétition pour que celui ci ne voit pas le jour.

Sauvegarder ses bases de données MariaDB / MySQL

Rédigé par zeph - - aucun commentaire

On trouve pas mal de script pour sauvegarder ses bases de données, mais rarement celui qui fait exactement ce que l'on veut !

Pour ma part j'ai besoin de plusieurs choses :

  • Une liste de bases de données à sauvegarder
  • Un historique de sauvegarde, un zip par base et par sauvegarde
  • Une synchronisation de mon dossier de sauvegarde
  • 2 fichiers sql par table, 1 pour la sctructure et 1 pour les données
  • 1 fichier pour la création des vues
  • 1 fichier pour la création des fonctions et des triggers
  • 1 fichier incluant l'ensemble pour une restauration complète

Après avoir glaner plusieurs scripts sur le net, mélangés et modifiés, je suis arrivé à un résultat qui me convient ...

Je vous livre mon script en espérant qu'il puisse aider d'autres personnes, qui l'adapteront à leur besoin :

#!/bin/bash
# example de crontab
##mm     hh      DD  MM   W    /path/progam [--option]...  ( W = weekday: 0-6 [Sun=0] )
# 0   10,13,16   *   *   1-5   /home/Sauvegarde/script/save_db.sh

# configuration de l'accès à la base de données
# Liste des bases à sauvegarder
DBNAMES="mabase mabase2 mabase3"
HOST="--host=localhost"
USER="--user=root"
# si vous n'avez pas de mot de passe commenter la ligne suivante et décommenter la suivante
PASSWORD="--password=monmotdepasse"
#PASSWORD=""
PORT="--port=3306"
# vous pouvez changer ces valeurs elles sont optionnelles ...
OPTIONS="--default-character-set=latin1 --set-charset"

# Chemin pour la sauvegarde + chemin à synchroniser avec la sauvegarde
BACKUP_DIR="/home/Sauvegarde/db"
RSYNC_DIR="/save/base"

# Nombre de backup a conserver
NB_ZIP=10

# Nom du fichier pour la restauration
RESTORESCRIPT="$BACKUP_DIR/__restoreData.sql"

# on recupère la date et l'heure pour le nom de la sauvegarde
DATE=`/bin/date '+%y-%m-%d_%Hh%M'`

#### début du script ####
echo 'Suppression des fichiers temporaires (*.sql) ...'
rm -f ${BACKUP_DIR}/*.sql > /dev/null 2>&1

cd ${BACKUP_DIR}

for DB in $DBNAMES
do
    echo "=========================================="
    echo "                 " ${DB}
    echo "=========================================="
    echo 'USE $DB;' > $RESTORESCRIPT
    echo 'SET FOREIGN_KEY_CHECKS=0;' > $RESTORESCRIPT

# Création d'un fichier contenant la structure + un fichier de données pour chaque tables
    for TABLE in `mysql $PORT $HOST $USER $PASSWORD $DB -e "SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_SCHEMA='$DB' AND TABLE_TYPE NOT LIKE '%VIEW%'" | egrep -v 'TABLE_NAME' `; do
        TABLENAME=$(echo $TABLE|awk '{ printf "%s", $0 }')
        FILENAMESTRUCT="${TABLENAME}_structure.sql"
        FILENAMEDATA="${TABLENAME}_data.sql"
        echo Dumping $TABLENAME
        echo "SELECT '     $TABLENAME' AS 'TABLE';" >> $RESTORESCRIPT
        echo 'source' $FILENAMESTRUCT';' >> $RESTORESCRIPT
        echo 'source' $FILENAMEDATA';' >> $RESTORESCRIPT
        echo Create file $FILENAMESTRUCT
        mysqldump --no-data $OPTIONS $PORT $HOST $USER $PASSWORD $DB $TABLENAME > ${BACKUP_DIR}/${FILENAMESTRUCT}
        echo Create file $FILENAMEDATA
        mysqldump --no-create-info $OPTIONS $PORT $HOST $USER $PASSWORD $DB $TABLENAME > ${BACKUP_DIR}/${FILENAMEDATA}
    done

# Création d'un fichier pour la création de chaque vue
    VIEWLIST=`mysql $HOST $USER $PASSWORD $DB -e "SELECT GROUP_CONCAT(TABLE_NAME SEPARATOR ' ') AS VIEW_NAME FROM information_schema.TABLES WHERE TABLE_SCHEMA='$DB' AND TABLE_TYPE LIKE '%VIEW%'" | egrep -v 'VIEW_NAME' `;
    FILENAMEVIEW="_${DB}_view.sql"
    echo Dumping $VIEWLIST
    echo "SELECT '     $VIEWLIST' AS 'VIEW';" >> $RESTORESCRIPT
    echo 'source' $FILENAMEVIEW';' >> $RESTORESCRIPT
    echo Create file $FILENAMEVIEW
    mysqldump --no-data $OPTIONS $PORT $HOST $USER $PASSWORD $DB $VIEWLIST > ${BACKUP_DIR}/${FILENAMEVIEW}

# Création du fichier des triggers et des routines
    FILENAMETRIGGER="_${DB}_trigger_function.sql"
    echo Dumping Trigger and Function
    echo "SELECT '     TRIGGER and FUNCTION' AS 'TRIGGER';" >> $RESTORESCRIPT
    echo 'source' $FILENAMETRIGGER';' >> $RESTORESCRIPT
    echo Create file $FILENAMETRIGGER
    mysqldump --triggers --routines --no-create-info --no-data --no-create-db --skip-opt $OPTIONS $PORT $HOST $USER $PASSWORD $DB > ${BACKUP_DIR}/${FILENAMETRIGGER}

    echo 'SET FOREIGN_KEY_CHECKS=1;' >> $RESTORESCRIPT

#    echo making tar...
#    tar -cf ${DB}_${DATE}.tar *.sql  > /dev/null 2>&1

    echo Compressing to ${DB}_${DATE}.zip
#    gzip -9 ${DB}_${DATE}.tar > /dev/null 2>&1
    rm -f ${BACKUP_DIR}/${DB}_${DATE}.zip > /dev/null 2>&1
    zip -X ${DB}_${DATE}.zip *.sql > /dev/null 2>&1

    echo removing temporary files...
    rm -f ${BACKUP_DIR}/*.sql > /dev/null 2>&1
#    rm -f ${BACKUP_DIR}/*.tar > /dev/null 2>&1
    echo "   done with     " $DB
    echo
    echo Removing old zip
#    find ${BACKUP_DIR}/${DB}_*.zip -mtime +7 -exec rm {} \;
    ls -1tr ${BACKUP_DIR}/${DB}_*.zip | head -n -${NB_ZIP} | xargs -d '\n' rm -f
done
echo "=========================================="
echo "            done with all database!       "
echo "=========================================="
echo ""
echo "=========================================="
echo "=              Sync Data                 ="
echo "=========================================="

rsync -a --delete ${BACKUP_DIR}/ ${RSYNC_DIR} &> /dev/null

Pour la restauration complète on dézippe une sauvegarde, on se place dans le dossier décompressé et on donne à MySQL le fichier contenant l'appel à l'ensemble des fichiers sql

mysql -h locahost -ss -u MONUSER -pMONPASSWORD < __restoreData.sql

Si vous souhaitez juste une partie, vous pouvez modifier le fichier __restoreData.sql , ou donner à MySQL uniquement la partie voulue.
Exemple pour restaurer uniquement les données de la table toto

mysql -h locahost -ss -u MONUSER -pMONPASSWORD MABASE < toto_data.sql
Classé dans : Non classé - Mots clés : aucun
Fil Rss des articles