Code shell Bash
Page mise à jour le 06-01-2026 à 23:21
Exemples
# 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"

Papy WinTux - Philippe DESLOGES - 2023-2026 - Powered by Debian - Apache 2.4.54 - PHP 7.4.33 - Last update 06-01-2026 23:21 - Page size 25 ko built in 15 ms
All trademarks, logos, images and documents on these pages belong exclusively to their respective owners.