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 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
| #!/bin/sh
#
#
volumes=$(cut -d' ' /etc/auto.netapp -f1)
if ! mount | grep /dev/vd
then echo "WARNING !! DELL storage not mounted !"; exit
fi
#if pgrep -x "rsync" > /dev/null
#then echo "rsync is running, exit"; exit
#else echo "rsync is not running."
#fi
#VARS
test=$1
if [ $# -eq 0 ] ; then
for vol in $volumes
do
if [ ! -f "/root/backup_logs/$vol.log" ]; then
ls /netapp/$vol > /dev/null 2>&1
if [ $? -gt 0 ]; then
echo $vol non disponible
continue
fi
echo $vol
# to do : évaluer la taille qu'il reste sur la partition
# premier backup pour ce volume, questionner l'utilisateur sur la partition
PS3="Sur quel serveur installer la sauvegarde ? "
select rep in r740disks md1400_1 exit
do
case $rep in
r740disks) break;;
md1400_1) break;;
exit) exit;;
esac
done
echo $rep > /root/backup_logs/$vol.log
destsize=`df | grep $rep | awk '{ print $4 }'`
destsizeh=`df -h | grep $rep | awk '{ print $4 }'`
sourcesize=`df | grep $vol | awk '{ print $3 }'`
sourcesizeh=`df -h | grep $vol | awk '{ print $3 }'`
sourcesize2=`df -h | grep $vol | awk '{ print $2 }'`
echo source : $vol $sourcesizeh/$sourcesize2 "|" destination : $rep $destsizeh
if [ $sourcesize -gt $destsize ]
then echo "Destination trop petite !" exit;
fi
source="/netapp/$vol"
dest="/mnt/$rep/volumes/"
cmd="rsync -ah -e ssh --exclude=.snapshot $source $dest 2>> /root/backup_logs/$vol.log"
mail -s "Backup NFS Ganil" nourry@cyceron.fr <<< "La copie s'effectue de $source vers $dest."
echo $cmd
eval $cmd
mail -s "Backup NFS Ganil" nourry@cyceron.fr, louis.menard2006@gmail.com <<< "La copie de $source vers $dest est terminée !"
exit
fi
done
elif [ "$test" == "schedule" ] ; then
#liste le fichier le plus vieux du répertoire
old=`ls -t /root/backup_logs/ | tail -1`
old=${old:0:-4}
echo Incrémentale de $old
rep=`sed -n 1p /root/backup_logs/$old.log`
source="/netapp/$old"
dest="/mnt/$rep/volumes/"
echo Destination : $rep
if [ -d "$dest" ]; then
cmd="rsync -ah -e ssh --exclude=.snapshot $source $dest 2>> /root/backup_logs/$old.log"
mail -s "Backup NFS Ganil" nourry@cyceron.fr <<< "La copie s'effectue de $source vers $dest"
echo $cmd
eval $cmd
mail -s "Backup NFS Ganil" nourry@cyceron.fr <<< "La copie de $source vers $dest est terminée !"
else
echo "Le répertoire $dest n'est pas présent, vous allez sortir" exit;
fi
fi |
Partager