#!/bin/bash ###################################################### # AUTEUR : Morgan JUBAULT # DATE : 01/08/2024 # # VERSION : 1.0 # # TITRE : BashAdmin # DESC : Gérez votre serveur à l'aide d'un menu # EXEC : ./bashadmin.sh ###################################################### ################################### LICENSING ####################################### # - Vous avez le droit de MODIFIER, d'ADAPTER le code de ce script à votre guise # # - Vous avez le droit de PARTAGER votre version du code, en citant l'auteur du # # code original # ##################################################################################### # Versions de BashAdmin # Version locale version="1.0" onlineVersion="" ##### RÉFÉRENTIEL DE COULEURS ##### couleurErreur="\033[0;31m" couleurErreurGras="\033[1;31m" couleurAvert="\033[0;33m" couleurAvertGras="\033[1;33m" couleurSucces="\033[0;32m" couleurSuccesGras="\033[1;32m" couleurNormal="\033[0m" couleurNormalGras="\033[1m" couleurCyan="\033[0;36m" couleurCyanGras="\033[1;36m" ################################### ##### FONCTIONS ##### function verifierMaj() { versionUrl="https://git.mjubault.fr/mjubault/BashAdmin/raw/branch/main/version.txt" if [[ "$(curl -sI "${versionUrl}" | head -n 1 | cut -d' ' -f2)" == "200" ]]; then # S'il est possible de récupérer la version en ligne, alors faire la comparaison des deux variables... onlineVersion=$(curl -s "${versionUrl}") if [[ "$onlineVersion" != "$version" ]]; then # Si une mise à jour est disponible, alors demander read -p "Une nouvelle mise à jour de BashAdmin vers la v${onlineVersion} est disponible, voulez-vous l'installer ? [y/N] " choix trash case $choix in Y|y) echo "" echo "Installation de la mise à jour..." if [[ $(wget "https://git.mjubault.fr/mjubault/BashAdmin/raw/branch/main/bashadmin.sh") ]]; then echo -e "${couleurSucces}Mise à jour effectuée. ${couleurNormal}" echo -e "${couleurAvert}Veuillez relancer BashAdmin afin de prendre en compte les modifications. ${couleurNormal}" echo "" exit 0 else echo -e "${couleurErreurGras}ERREUR : ${couleurErreur}La mise à jour de bashadmin n'a pas pu être effectuée. ${couleurNormal}" fi echo "" ;; *) ;; esac fi else # Sinon, afficher un message à l'utilisateur echo -e "${couleurErreurGras}ERREUR : ${couleurErreur}Impossible de vérifier les mises à jour ! ${couleurNormal}" echo $(curl -sI "${versionUrl}" | head -n 1) echo $versionUrl fi } function afficherMenu() { choix="" echo "" echo -e " ${couleurCyanGras}BashAdmin v${version} ${couleurNormal}" if [[ "${onlineVersion}" != "${version}" ]]; then echo -e " ${couleurSucces}Mise à jour disponible ${couleurNormal}" fi echo "" echo -e " ${couleurAvertGras}1) ${couleurNormal}Mise à jour du système" echo -e " ${couleurAvertGras}2) ${couleurNormal}Redémarrer le système" echo -e " ${couleurAvertGras}3) ${couleurNormal}Arrêter le système" echo "" if [[ "${onlineVersion}" != "${version}" ]]; then echo -e " ${couleurAvertGras}M) ${couleurCyan}Mettre à jour BashAdmin ${couleurNormal}" fi echo -e " ${couleurAvertGras}Q) ${couleurErreur}Quitter ${couleurNormal}" echo "" # Saisie du choix par l'utilisateur read -p "Votre choix : " choix trash # En fonction du choix... case $choix in 1) clear echo -e "${couleurCyan}Mise à jour du système... ${couleurNormal}" echo "" apt update && apt upgrade -y && apt autoremove -y echo "" afficherMenu ;; 2) clear echo -e "${couleurCyan}Redémarrage du système... ${couleurNormal}" echo "" reboot exit 0 ;; 3) clear echo -e "${couleurCyan}Arrêt du système... ${couleurNormal}" echo "" shutdown now exit 0 ;; M|m) clear echo -e "${couleurNormal}Installation de la mise à jour..." exit 0 ;; Q|q) clear exit 0 ;; *) clear afficherMenu ;; esac } ##### DÉBUT DU PROGRAMME ##### if [[ $USER != "root" ]]; then echo -e "${couleurErreurGras}ERREUR : ${couleurErreur}Vous n'êtes pas root ! ${couleurNormal}" exit 0 fi clear verifierMaj afficherMenu