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

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

yoann informatique at mistur.org
Mar 17 Oct 20:08:38 CEST 2006


Bonsoir

finalement, je suis entrain de ré écrire complètement (ou presque) le script de
backup sql (à la l'origine, j'ai retravaillé un peu le script de backup sql car
j'avais une certaine incompatibilité de nomage des fichiers backup avec rsync)

le fait de faire une rotation des noms impliquait de retransférer les n+1 à
n+count backup alors qu'ils sont déjà synchronisé du simple faite qu'on les
renomme et rsync ne sait pas retomber sur ses pattes autrement qu'en
re-transférassent tout...

J'ai donc ajouté un option qui permet un nomage de backup fixe en ajoutant la
date de backup dans le nom (un grand classic mais très efficace)

j'ai rajouté le test d'existence du backup pourtant le même nom avec 3
comportement différent  :
no : pas de backup
rename : ajouter l'heure dans le nom du nouveau backup
overide : ecraser le backup existant

et puis je me suis dit quitte à refaire le script autant faire un truc propre :

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

voilà en gros le usage :
#################################################################################
# ./sqlbackup2.sh -h
Usage: sqlbackup.sh [OPTION] -t TYPE

sqlbackup.sh is a script used by alternc for sql backup

Mandatory arguments to long options are mandatory for short options too.
  -v, --verbose                 set verbose mode on
  -d, --debug                   set debug mode on
  -n, --name-method  METHOD     set the method type for files' name
  -a, --allow-override OVERRIDE specify the behaviour if backup files already exist
  -t, --type TYPE               set backup type
  -h, --help                    display this help and exit

the TYPE arguments specify type of backup.  Here are the values:

    daily           Execute a daily backup on all databases set to daily backup
    weekly          Execute a daily backup on all databases set to weekly backup

the METHOD argument the type for files' name.  Here are the values:

    date            insert in the backup file's name the date of the backup
                    (default value)
    rotate          rename file as file.<number><extension> where <number>
                    is incremented

the OVERRIDE argument the behaviour of the script if a backup file already exist.
Here are the values:

    no              if a backup file already exist, no backup done
    rename          if a backup file already exist, add an extension to the new
                    backup file

    overwrite       if a backup file already exist, overwrite it with the new
                    backup
#################################################################################

à mon sens, pour le moment le diff n'a plus lieux d'être car 90% à été modifié
et il ajouter un fichier de conf

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

J'ai en tête de continuer à développer certaine chose, mais je voudrais votre
avis sur l'utilité.

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)

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 des avis, question(s), conseil(s) n'hesitez pas. surtout sur les 3
points présenté si dessus, 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.

sachant que je sais pour combien de temps encore, j'aurais du temps à consacrer
à ça :)

merci de m'avoir lu jusqu'ici et bonne soirée

Yoann




Plus d'informations sur la liste de diffusion Dev