#!/bin/bash
####################################
#
# Sauvegarde vers un point de montage NFS en utilisant
# une rotation grand-parent - parent - enfant
#
####################################
# Ce qu'il faut sauvegarder
backup_files="/home /var/spool/mail /etc /root /boot /opt"
# Où le sauvegarder
dest="/mnt/backup"
# Initialisation des variables utilisées dans le nom de l'archive
day=$(date +%A)
hostname=$(hostname -s)
# Déterminer le numéro de semaine (1-4) du mois en cours
day_num=$(date +%d)
if (( $day_num <= 7 )); then
week_file="$hostname-week1.tgz"
elif (( $day_num > 7 && $day_num <= 14 )); then
week_file="$hostname-week2.tgz"
elif (( $day_num > 14 && $day_num <= 21 )); then
week_file="$hostname-week3.tgz"
elif (( $day_num > 21 && $day_num < 32 )); then
week_file="$hostname-week4.tgz"
fi
# Déterminer si le mois est pair ou impair
month_num=$(date +%m)
month=$(expr $month_num % 2)
if [ $month -eq 0 ]; then
month_file="$hostname-month2.tgz"
else
month_file="$hostname-month1.tgz"
fi
# Création du nom de l'archive
if [ $day_num == 1 ]; then
[tab]
archive_file=$month_file
elif [ $day != "Saturday" ]; then
archive_file="$hostname-$day.tgz"
else
[tab]
archive_file=$week_file
fi
# Affichage du commencement des opérations
echo "Sauvegarde de $backup_files vers $dest/$archive_file"
date
echo
# Sauvegarde des fichiers à l'aide de tar.
tar czf $dest/$archive_file $backup_files
# Affichage de la fin des opérations
echo
echo "Sauvegarde terminée"
date
# Listing détaillé des fichiers de $dest pour vérifier leur poids
ls -lh $dest/