Code shell Bash
Page mise à jour le 06-01-2026 à 23:21
# création d'un menu
exitstatus=0
while [ $exitstatus == 0 ]; do
option=$(whiptail --title "MENU" --menu "Choix du script à exécuter" 15 60 4 \
"1" "Lancer script 1" \
"2" "Lancer script 2" \
"3" "Lancer script 3" \
"4" "Quit" 3>&1 1>&2 2>&3)
exitstatus=$?
case $option in
1) ./script-1.sh ;;
2) ./script-2.sh ;;
3) ./script-3.sh ;;
4) exit ;;
esac
if [ $exitstatus == 0 ]; then
read -p "Press a key"
fi
done
exit 0
# sauvegarde par synchronication de la configuration serveur vers un nas
# noms de répertoires horodatés (le répertoire parent backups_conf/ doit déjà exister)
dest_ssh=backups_conf/backup_config_$(date +%Y-%m-%d_%H-%M)_ssh/
dest_ssl=backups_conf/backup_config_$(date +%Y-%m-%d_%H-%M)_ssl/
dest_vst=backups_conf/backup_config_$(date +%Y-%m-%d_%H-%M)_vst/
# transferts vers le NAS
rsync -r /root/.ssh/ <utilisateur>@192.168.1.253:$dest_ssh
rsync -r /etc/ssl/cmclub.ddns.net/ <utilisateur>@192.168.1.253:$dest_ssl
rsync -r /etc/apache2/sites-available/ <utilisateur>@192.168.1.253:$dest_vst
# sauvegarde du crontab vers un nas
# nom de répertoire horodaté (le répertoire parent backups_cron/ doit déjà exister)
dest=backups_cron/backup_cron_$(date +%Y-%m-%d_%H-%M)/
# transfert du crontab vers le NAS
crontab -l > /root/crontab.txt
scp /root/crontab.txt <utilisateur>@192.168.1.253:$dest
rm /root/crontab.txt
# sauvegarde par synchronication d'un répertoire vers un nas
# nom de répertoire horodaté (le répertoire parent backups/ doit déjà exister)
dest=backups/backup_folder_$(date +%Y-%m-%d_%H-%M)/
# transfert vers le NAS
rsync -r --exclude 'photos' --exclude 'videos' /var/www/html/folder <utilisateur>@192.168.1.253:$dest
# compression et sauvegarde par synchronication d'un répertoire vers un nas
# préparation de l'archive compressée"); ?>
tar --exclude='photos' --exclude='videos' -zcf archive.tar.gz --absolute-names /var/www/html/folder
# nom de fichier horodaté (le répertoire parent backups/ doit déjà exister)
dest=backups/$(date +%Y-%m-%d_%H-%M)_archive.tar.gz
# transfert de l'archive compressée vers le NAS
rsync archive.tar.gz <utilisateur>@192.168.1.253:$dest
# supression de l'archive locale
rm archive.tar.gz
# mesure la durée d'exécution d'un script
start=$(date +"%H:%M:%S")
# script à évaluer ici
# sleep 5
stop=$(date +"%H:%M:%S")
time=$(date -u -d @$(( $(date +%s) - $(date -d $start +%s) )) +%T)
echo "Start = $start"
echo "Stop = $stop"
echo "Time = $time"