On Sun, 1 Jan 2006 20:03:01 +0100
Christophe Gaubert <[EMAIL PROTECTED]> wrote:

> 
> -------------------------------------------------
> Message transféré :
> -------------------------------------------------
> Date: Sun, 1 Jan 2006 18:39:33 +0100
> From: linux_forever2001 <[EMAIL PROTECTED]>
> To: Christophe Gaubert <[EMAIL PROTECTED]>
> Subject: Re: [Confirme] script
> 
> 
> Le dimanche 1 Janvier 2006 17:29, vous avez écrit :
> > Le 01/01/06, linux_forever2001 <[EMAIL PROTECTED]> a écrit :
> > > j'ai un peu cherché sur le net, mais je ne trouve jamais ce genre de
> > > scripts.
> >
> > Fin de page de :
> > http://abs.traduc.org/abs-3.7-fr/comparison-ops.html
> 
> ok, merci ! J'étais donc à peu près vrai.. (à peu près seulement) :)
> je vous live mons script complet qui est une sauvegarde d'une base de
> donnée. Cette sauvegarde est écrasé sur le serveur chaques jours, avec
> envoi de la sauv sur ftp (avec date), qui supprime la sauvegarde d'il y
> a 10 jours chaques fois, et qui copie cette sauvegarde (datés tjs) sur
> un serveur distant si celui est allumé :)
> c'est encore largement améliorable, mais cela fonctionne et c'est déjà
> çà :) je vous le livre si des fois quelqu'un est intéressé :)
> 
> #!/bin/sh
> HOSTNAME=mysql; export HOSTNAME
> USER=root; export USER
> ENV=/root/.bashrc; export ENV
> USERNAME=root; export USERNAME
> INPUTRC=/etc/inputrc; export INPUTRC
> PWD=/root; export PWD
> HOME=/root; export HOME
> TMP=/root/tmp; export TMP
> LOGNAME=root; export LOGNAME
> 
> 
> ####VARIABLES:################""
> 
> 
> 
> #Utilisé pour la suppresion sur ftp
> DATEJOUR=`date +'%d'-'%m'-'%y'_'%H'-'%M'`
> JOUR=`date +'%d'`
> MOIS=`date +'%m'`
> ANN=`date +'%y'`
> CHEMIN="/var/lib/drakbackup/fichiers"
> 
> #utilis pr le test du ping
> STATE=0
> IP_LIST="192.168.0.50"
>   
>  
> ##############AJOUT POUR SUPPRESSION SUR 
> FTP###########################################
> 
> 
> #calcul du nbre de jour dans les mois, ici on se fout de fevrier à 29
> jours if [ $MOIS=01 -o $MOIS=03 -o $MOIS=05 -o $MOIS=07 -o $MOIS=08 -o
> $MOIS=10 -o $MOIS=12 ]
> then
>       nbrejour=31
>       echo "mois impair a 31 jours"
> else
>       nbrejour=30
>       echo "mois pair à 30 jours"
> fi
> 
> 
> #calcul de la date
> joursuppr=$[JOUR-10]
> 
> #si $joursuppr < 0
> if test $joursuppr -lt 0
> #if $(( $val < 0 ))
>       
> then
>       #test pour le mois. Si le mois= janvier,alors la valeur du mois
> est 12 # (mois précédent)
>       if test $MOIS=1
>       then
>       moissuppr=12    
>       newval=$[$nbrejour+$joursuppr]
>       annee=$[$ANN-1]
> else
>       moissuppr=$[$MOIS-1]
>       newval=$[$nbrejour+$joursuppr]
>       annee=$ANN
> fi 
> else 
>       if [ $joursuppr = 0 ]
>       then
>       newval=$[$nbrejour-10]
>       moissuppr=$MOIS
>       annee=$ANN
> else
> if test $joursuppr -gt 0
> then  
> 
>       newval=$joursuppr
>       moissuppr=$MOIS
>       annee=$ANN
> 
> fi
> fi
> fi
> 
> #passe le nom du fichier dans la variable fichier
> fichier=`ls $CHEMIN/plan2.$newval-$moissuppr-0$annee* | cut -c30-`
> 
> echo $fichier
> 
> ###########################################FIN SUPPR 
> FTP####################"""
> 
> 
> echo "La sauvegarde du ".${DATEJOUR}."commence" 
> >> /var/log/backupsql/${DATEJOUR}
>  
>  
>  mysqldump -P 3310 -u user -ppassword base > /var/lib/drakbackup/nom.sql
>  gzip -f9 /var/lib/drakbackup/nom.sql
>  
>  gzip -tv /var/lib/drakbackup/nom.sql.gz
> >> /var/log/backupsql/${DATEJOUR} 
> 
>  #création du fichier (vide) pour récup du nom est suppresion du ftp
>  touch /var/lib/drakbackup/fichiers/plan2.${DATEJOUR}.sql.gz
>  #active le mode passif pour les clients ftp
>  modprobe ip_conntrack_ftp
>  
> 
> echo "Envoi de la sauvegarde sur ftp" >> /var/log/backupsql/${DATEJOUR}
> 
> #essai pr loguage
> ftp -v ftpperso.free.fr>>/var/log/backupsql/${DATEJOUR}<<!!
> type binary
> cd base
> put /var/lib/drakbackup/base.sql.gz plan2.${DATEJOUR}.sql.gz
> del ${fichier}
> dir
> quit
> !!
> echo $fichier "a été supprimé du serveur ftp"
> echo "Fin de la sauvegarde sur ftp" >> /var/log/backupsql/${DATEJOUR}
> 
> #suppression du fichier de listage
> rm $CHEMIN/$fichier
> echo "$CHEMIN/$fichier a bien supprimé"
> 
> #script pour envoyer sur serveur de sauvegarde
> for i in `echo $IP_LIST`; do
> ping -c 2 $i >/dev/null 2>&1
> [ $? -eq 0 ] && STATE=1
>            done
> if [ $STATE -eq 0 ]; then
> 
> #pas de ping
> echo "La sauvegarde n'a pas ete enregistre sur le serveur" 
> >> /var/log/backupsql/${DATEJOUR}
> 
> else
> 
> mount -t smbfs -o 
> username=xxx,password=xxx //192.168.0.50/sauvegarde /mnt/sauvegarde
> 
> cp 
> -v /var/lib/drakbackup/base.sql.gz 
> /mnt/sauvegarde/serveursql/base-$DATEJOUR.sql.gz 
> >> /var/log/backupsql/${DATEJOUR}
> 
> umount -l /mnt/sauvegarde
> echo 'La sauvegarde a bien t envoye sur le serveur de sauv' 
> >> /var/log/backupsql/${DATEJOUR}
> 
> echo 'sauv OK'
> fi
> 

pour dater des fichiers, j'aime bien le format YYYYMMJJ qui permet un rangement 
par date croissante.
ce format correspond pour la date du jour à:

date "+%Y%m%d"

la date au même format de 10 jours avant s'obtient de cette manière:

date "+%Y%m%d" -d "10 days ago"

[ prompt ]$ date "+%Y%m%d"; date "+%Y%m%d" -d "10 days ago"
20060101
20051222


bye
jipe

____________________________________________________
Want to buy your Pack or Services from Mandriva? 
Go to http://store.mandriva.com
Join the Club : http://www.mandrivaclub.com
____________________________________________________

Répondre à