Ticket #630: lnx_mondo_bkp_system.sh

File lnx_mondo_bkp_system.sh, 6.4 KB (added by presta.systeme, 8 years ago)
Line 
1#!/bin/sh
2#######################################################################################################################
3#
4# DESCRIPTION   :       LNX - Script de sauvegarde Mondorescue automatique
5#
6# OPTIONS DE LANCEMENT
7# arguments :
8#      -dir /my/dir;/other/dir -- le dossier que l'on veut purger                        (obligatoire)
9#      -recursive y            -- recherche dans les sous-répertoire                     (par défaut: n)
10#      -filetype all           -- le(s) type(s) de fichier à purger, séparé par des ":"  (par défaut: all)
11#      -retention 180          -- au delà de combien de jours on liste                   (par défaut: 365)
12#      -remove y               -- lancer un rm sur la liste de fichiers                  (par défaut: n)
13#      -log /tmp/testing       -- log des opérations                                     (par défaut: /root/admin/log)
14#
15# EXEMPLE       :       $0 -dir /my/dir:/other/dir -recursive y -filetype .tmp:.dmp.gz:.dmp -retention 180 -rm y -log /tmp/mylog.log
16#
17# LOG           :       /tmp/lnx_historique_purge.log (par défaut)
18#
19# MODIFICATIONS :
20#                       2009/12     : v1   : Creation           - Camille Bouly
21#                       2010/04/07      : v1.1 : Modifications          - BLE
22#                        Renommage du script
23#                        Correction des erreurs
24#                        Ajout usage       
25#
26#######################################################################################################################
27
28#***************************************************************************
29#              Variables FOR VTOM
30#***************************************************************************
31
32. ~/.bash_profile
33
34VERSION="1.1"
35ECHO_VERSION="## LNX - Script de sauvegarde Mondorescue automatique -- Version $VERSION"
36
37
38SYNTAX="
39$ECHO_VERSION
40
41USAGE : $0 [ options ]
42 
43    -serv       : Nom du serveur ou reside le partage NFS
44   
45    -e          : Filesystem  ou directory que l'on veut exclure de la sauvegarde   
46 
47    -m [i][n]   : Choix du Mode - soit i pour le mode ISO soit n pour le mode NFS 
48 
49 Exemple :
50 $0  -m i -serv pmk0vct10 -e /dev/mapper/VolGroup00-LogVol02 pmk1ora2:/oracle/NodhosImages /PMK1JBOSS10 /srv /tftpboot >> /var/log/lnx_mondo_bkp_system.log
51
52"
53
54
55
56
57#***************************************************************************
58#       Functions
59#***************************************************************************
60
61error_syntax() {
62  echo ""
63  echo "$SYNTAX" >&2
64  exit 1
65}
66
67#***************************************************************************
68#              Variables
69#***************************************************************************
70
71
72servername=`hostname`
73resmondo=1
74mesmondo=""
75NFS_DIRECTORY=mondo_bck
76MAIL_TO_SENDER=bruno.legrand@partenaire.pimkie.com
77
78#***************************************************************************
79#               MAIN
80#
81#***************************************************************************
82#Verification du nombre d'arguments
83if [[ $# -lt 1 ]]
84then
85  error_syntax
86fi
87
88
89while [ "$1" != "" ]
90do
91    case $1 in
92        -e)     exclude=$2
93        shift
94        while [ "$2" != "-m" ] && [ "$2" != "" ]
95        do 
96        exclude="$exclude $2"
97        shift
98        done
99        exclude='"'"$exclude"'"'
100        shift ;;
101
102        -m)     mode=$2
103        shift ;;
104
105        -serv)  servnfs=$2
106        shift ;;
107       
108    -version) echo "$ECHO_VERSION"; exit 49;;
109 
110    -help) echo "$SYNTAX"; exit 50;;
111 
112    esac
113    shift   
114done
115
116
117#Mise en place du montage nfs
118
119service nfs restart
120
121if [ ! -d /mnt/mondo ] ; then
122    mkdir -v /mnt/mondo
123fi
124
125umount /mnt/mondo
126
127mount -t nfs $servnfs:/$NFS_DIRECTORY /mnt/mondo
128
129#Ajouter controle erreur
130
131
132
133#Creation du dossier de reception au nom du serveur s'il n'existe pas
134
135if [ ! -d /mnt/mondo/$servername ] ; then
136    mkdir -v /mnt/mondo/$servername
137fi
138
139#Archivage des Infos du serveur
140
141
142echo "Fiche d'identité de $servername" > /mnt/mondo/$servername//ID.txt
143echo -e "\n############## Uname -a #########################\n" >> /mnt/mondo/$servername/ID.txt
144uname -a >> /mnt/mondo/$servername/ID.txt
145echo -e "\n############## df -h #########################\n" >> /mnt/mondo/$servername/ID.txt
146df -h >> /mnt/mondo/$servername/ID.txt
147echo -e "\n############## fstab #########################\n" >> /mnt/mondo/$servername/ID.txt
148cat /etc/fstab >> /mnt/mondo/$servername/ID.txt
149echo -e "\n############## ifconfig -a #########################\n" >> /mnt/mondo/$servername/ID.txt
150ifconfig eth0 >> /mnt/mondo/$servername/ID.txt
151echo -e "\n############## OS Version #########################\n" >> /mnt/mondo/$servername/ID.txt
152cat /etc/redhat-release >> /mnt/mondo/$servername/ID.txt
153echo -e "\n############## modprobe.conf #########################\n" >> /mnt/mondo/$servername/ID.txt
154cat /etc/modprobe.conf >> /mnt/mondo/$servername/ID.txt
155echo -e "\n############## Fdisk -l #########################\n" >> /mnt/mondo/$servername/ID.txt
156fdisk -l >> /mnt/mondo/$servername/ID.txt
157echo -e "\n############## LVM #########################\n" >> /mnt/mondo/$servername/ID.txt
158pvdisplay >> /mnt/mondo/$servername/ID.txt
159vgdisplay >> /mnt/mondo/$servername/ID.txt
160lvdisplay >> /mnt/mondo/$servername/ID.txt
161echo -e "\n############## Exclus lors de la sauvegarde #########################\n" >> /mnt/mondo/$servername/ID.txt
162echo "$exclude" >> /mnt/mondo/$servername/ID.txt
163
164#On archive l'anciennne sauvegarde (si elle existe)
165
166if [  -e /mnt/mondo/$servername/mondorescue-1.iso ] ; then
167    mv /mnt/mondo/$servername/mondorescue-1.iso /mnt/mondo/$servername/mondorescue-1.old
168fi
169
170
171#C'est parti!
172
173if [ $mode = 'n' ]
174        then
175    echo "mode nfs"
176        mondoarchive -On $servnfs:/$NFS_DIRECTORY -d "$servername" -N -E "$exclude" -s 40g   | tee /tmp/mesmondo.txt
177fi
178
179if [ $mode = 'i' ]
180        then
181    echo "mode iso"
182     mondoarchive -Oi -d /mnt/mondo/"$servername" -N -E "$exclude" -s 40g   | tee /tmp/mesmondo.txt
183fi
184
185resmondo=`tail /tmp/mesmondo.txt | grep result | awk -F= '{print $2}'`
186
187
188#On verifie et on envoie un mail sur le statut de la sauvegarde
189
190if [ $resmondo != 0 ]
191    then
192    mail -s "Probleme sur l'archivage Mondorescue du serveur $servername ; voir /var/log/mondoarchive.log" $MAIL_TO_SENDER </tmp/mesmondo.txt
193    exit 1;
194    else
195    mail -s "OK pour l'archivage Mondorescue du serveur $servername" $MAIL_TO_SENDER </tmp/mesmondo.txt
196    if [  -e /mnt/mondo/$servername/mondorescue-1.old ] ; then
197        rm -f /mnt/mondo/$servername/mondorescue-1.old
198    fi
199    exit 0;
200fi
201
202
203