-------------------------------------------------
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



-- 
Christophe Gaubert
http://perso.wanadoo.fr/christophe.gaubert
Mail posté depuis un système libre GNU/Linux

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

Répondre à