Bonjour,


Je souhaiterais avoir votre avis sur un script qui doit servir en mode "cron" afin de faire des sauvegardes sur un réseau d'entreprise ayant au plus 10 machines...

Les machines clientes sont sous windows, et stockent leurs propres données... certaines sont sauvegardées à chaque horaire de pause sur le serveur, puis seront accessibles en lecture seule par un serveur samba, pour des restaurations rapides. Elles seront également graver sur un dvd+rw tous les soirs.

Le but de la manoeuvre est de ne pas avoir à se soucier d'autre chose que de mettre un dvd dans le graveur à temps (en gros, chaque matin... et on fait une rotation)

le script fonctionne, mais je préférerais qu'il soit blindé... donc tous les avis constructifs sont bons à prendre


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#! /bin/bash
ISO_MOUNTPATH="/mnt/graveur"
ISO_REMOTEPATH=""
USER_LIST="/home/sauvegarde/sauv_users.txt"
if [ -r ${USER_LIST} ]
then
        USERS=`cat ${USER_LIST}`
else
        echo "Impossible de lire ${USER_LIST}"
        exit 1
fi
USERS=`cat ${USER_LIST}`
DIRS=""
DIR_LIST=""
for USERNAME in $USERS
do
        ln -s -f "/home/$USERNAME" /home/links/
        REMOTE_COMPUTER=`grep /mnt/$USERNAME /etc/fstab | awk -F ' ' '{print $1}' | awk -F '/' '{print $3}'`
        IS_ACTIVE=`nmblookup ${REMOTE_COMPUTER} | grep failed | wc -l`
        if [ ${IS_ACTIVE} -lt 1 ]
        then
                mount /mnt/$USERNAME
        else
                echo "Impossible de se connecter à ${REMOTE_COMPUTER}"
                continue
        fi
        DIR_LIST="/home/sauvegarde/${USERNAME}.dir"
        if [ -r ${DIR_LIST} ]
        then
                DIRS=`cat ${DIR_LIST}`
        else
                echo "Impossible de lire ${DIR_LIST}"
                continue
        fi
        for DIR in $DIRS
        do
                if [ -d /mnt/$USERNAME/$DIR ]
                then
                        mkdir -p /home/$USERNAME/$DIR
                        cd /home/$USERNAME/$DIR
                        cp -r "/mnt/$USERNAME/$DIR/"* .
                else
                        echo "Impossible de copier /mnt/$USERNAME/$DIR"
                        continue
                fi
        done
        sync
        umount /mnt/$USERNAME
        sleep 5
done
LABEL=`date +"%Y_%m_%d"`
ISO_FILENAME="/home/sauvegarde/${LABEL}.iso"
mkisofs -f -R -r -J -V "$LABEL" -o "${ISO_FILENAME}" /home/links
REMOTE_COMPUTER=`grep ${ISO_MOUNTPATH} /etc/fstab | awk -F ' ' '{print $1}' | awk -F '/' '{print $3}'`
IS_ACTIVE=`nmblookup ${REMOTE_COMPUTER} | grep failed | wc -l`
if [ ${IS_ACTIVE} -lt 1 ]
then
        mount ${ISO_MOUNTPATH}
else
        echo "Impossible de se connecter à ${REMOTE_COMPUTER}"
        exit 1
fi
cp "${ISO_FILENAME}" "${ISO_MOUNTPATH}/${ISO_REMOTEPATH}"
sync
touch "${ISO_MOUNTPATH}/${ISO_REMOTEPATH}/gravure_ok.txt"
sync
umount ${ISO_MOUNTPATH}
#rm -f "${ISO_FILENAME}"
rm /home/links/*