Bonjour à tous,
Je me permets de vous demander votre avis sur un script que j’ai fait surtout à titre d’exercice, car j’ai un doute sur sa “propreté”.
Je pense que mon indentation est parfois hasardeuse (heureusement que ce n’est pas du python!).
Le bidule (je l’ai mis sous GPL v3 par fierté, je ne pense pas que qui que ce soit en veuille en l’état!) :
[code]#!/bin/bash
set +v
clear
Déclarons les variables utiles dans le script
user=$(whoami)
machine=$(hostname)
DATE=$(date +%y%m%d)
PATH_SAV=/media/HERCULE/save
echo "#########################################################################################"
echo "##### Bienvenue $user dans le Über-script de sauvegarde et maintenance sur $machine #####"
echo "##### Proposé par Arthur sous licence GPLv3 #####"
echo -e “#########################################################################################\n\n\n\n”
Déclarons les fonctions:
Cette fonction permet de tester la présence du support de sauvegarde:
function test_support {
ls /media/HERCULE/save
if [ $? != “0” ]
then
echo "Le support de sauvegarde n’est pas monté!"
echo -e "Retour au menu\n"
menu_first
fi
}
function sauvegarde_systeme {
echo -e "\nVous avez demandé la sauvegarde système, ne quittez pas!\n"
test_support
su -c "rsync -avz --progress --delete --exclude-from=/home/arthur/Tech/exclude / $PATH_SAV/$machine"
exit
}
function sauvegarde_forum {
echo -e "\nVous avez demandé la sauvegarde du forum, ne quittez pas!\n"
test_support
mkdir $PATH_SAV/forum/$DATE/
echo "Connexion au serveur ftp et copie des fichiers…"
wget -r -c ftp://utilisateur:motdepasse@url.fr/* -P $PATH_SAV/forum/$DATE/
if [ “$?” != “0” ]
then
echo "Des avertissements sont survenus lors du transfert!"
exit 1
fi
echo "Compression des fichiers"
tar -cvjf $DATE.tar.bz $PATH_SAV/trux/$DATE/forum/*
if [ “$?” != “0” ]
then
echo "Des avertissements sont survenus lors de la compression!"
exit 2
fi
rm -rf /$PATH_SAV/forum/$DATE
mv $DATE.tar.bz $PATH_SAV/forum/
echo "La sauvegarde est terminée. Aucun incident à déplorer…"
exit
}
function update {
echo -e "\nVous avez demandé la mise à jour système, ne quittez pas!\n"
su -c "update-pciids && update-usbids && apt-get update && apt-get dist-upgrade && apt-get clean && apt-get autoclean"
exit
}
function session_kill {
echo -e "\nVous avez demandé à déconnecter un utilisateur, ne quittez pas!\n"
echo -e "\nVoici la liste des utilisateurs connectés:\n"
who
echo -e "\nQuel utilisateur voulez-vous déconnecter? Toutes ses applications seront fermées, et le risque de perte de données est non nul!"
read user2kill
su -c "killall -9 -u $user2kill -r"
if [ “$?” != “0” ]
then echo -e "\nL’utilisateur n’a pas pu être déconnecté!\n"
fi
exit
}
function menu_first {
echo -e "\n\n\n\n???"
echo -e "==============> Que voulez-vous faire? <==============\n"
echo -e "1- Mise à jour 2- Sauvegarde système 3-Sauvegarde forum \n4- Nettoyage 5- Tuer une session \n9- Quitter\n"
echo 'Saisissez votre choix puis “ENTRÉE”:'
read choix
if [ “$choix” = “9” ]
then
exit
elif [ “$choix” = “2” ]
then
sauvegarde_systeme
elif [ “$choix” = “3” ]
then
sauvegarde_forum
elif [ “$choix” = “1” ]
then
update
elif [ “$choix” = “4” ]
then
echo "Le nettoyage n’a pas encore été implémenté!"
menu_first
elif [ “$choix” = “5” ]
then
session_kill
else echo "Choix erroné"
fi
}
Tout est prêt, appelons le menu principal!
menu_first[/code]
NB: Pas de sqldump pour la sauvegarde du forum, car le forum est sur le mutualisé d’un ami et je n’ai pas encore accès à la base, donc je fais une sauvegarde locale de la base avec phpBB puis je récupère tout.