[AlternC-dev] Proposition sqlbackup.sh (long)

Retour à l'archive de la liste
Le site d'AlternC
Google Custom Search

yoann informatique at mistur.org
Jeu 19 Oct 08:35:02 CEST 2006


yoann a écrit :
> Bonsoir

Bonjour,

j'ai ajouté des option de lock table à mysqldump pour garantir un
minimum l'intégrité de l'export mais par défaut, les users dans alternc
n'ont pas le droit de lock sur leurs propres bases de données. Y a-t-il
une raison particulière ça ou c'est envisageable de la rajouter par défaut ?

sinon, script avec ajout de pas mal de commentaire toujours ici :

http://file.mistur.org/sqlbackup/

et toujours :

> 1 / backup sur demande :
> idée : bien qu'on accès à phpmyadmin, il peut s'avérer impossible de faire un
> backup si la base est trop importante (timeout apache/php en générale).
> Solution: l'idée m'est venu de proposer un bouton "demander un backup
> immédiatement". L'idée serai de venir remplir une table ou un fichier (ou autre
> ?) indiquant les paramètres de la base dont on doit faire l'export, et dans un
> cron tournant toutes les 5 mins, on vient lire cette table ou ce fichier et on
> effectue l'export.
> Pour la partie interface, ça fait bien longtemps que je n'ai fait de php, donc
> si quelqu'un veut m'aider un peu sur ce point là, je suis preneur
> 
> 2/ possibilité de lors d'un backup spécifique d'indiquer si l'export doit être
> effacé ou non lors de la fin de validité du backup (count étant égale aux
> nombres de jours pour le daily et aux nombre de semaine pour le weekly)

petite précision pour ce point :

voilà la commande de suppression des anciens backup que j'utilise

# find the oldest backup file need to be delete
# find ${target_dir}     : in the target_dir
# -name \"${db}.*sql.*\" : All files like <db_name>.*sql.*
# -maxdepth 0            : only in the target dir (on not in the
#                          subdirectory)
# -mtime $last2del       : files with the exact mtime set to $last2del
#                         daily  (number of backup to keep + 1) days
#                         weekly (number of backup to keep + 1) * 7 days
# -exec rm -f {} \;      : remove all files found
#
find ${target_dir} -name "${db}.*sql.*" -maxdepth 1 -mtime $last2del
-exec rm -f {} \;

donc si on fait un backup manuel un jour, le find devrait le trouver le
jour ou on devra effacer le backup automatique daté du même jour et donc
il sera l'effacé. l'idée ici est de rajouter un élément dans le nom que
sera filtré par le find ou autre chose qui évitera de l'effacer.



> 3/ création d'un user spécifique n'ayant que le droit de lire les bases et non
> utilisé le root mysql (sysusr) qui peut amener de potentiel problèmes de sécurité
> 
> sûrement d'autre chose que j'oublie mais je pense que pour ce soir j'en ai écris
> assez :)
> 

si vous avez des avis, question(s), conseil(s) sur ses 3 points présenté
si dessus, n'hesitez pas. si vous n'y voyez pas d'utilité ou si au
contraire ça vous intéresse, ça m'aidera à prioritisé le dev de tout ça.

Yoann



Plus d'informations sur la liste de diffusion Dev