170 lines
4.7 KiB
Bash
Executable File
170 lines
4.7 KiB
Bash
Executable File
#!/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)
|
|
appliquerMaj
|
|
;;
|
|
|
|
*)
|
|
;;
|
|
|
|
esac
|
|
|
|
fi
|
|
|
|
else
|
|
# Sinon, afficher un message à l'utilisateur
|
|
echo -e "${couleurErreurGras}ERREUR : ${couleurErreur}Impossible de vérifier les mises à jour ! ${couleurNormal}"
|
|
echo -e "${couleurErreur}Êtes-vous connecté à Internet ? ${couleurNormal}"
|
|
echo $(curl -sI "${versionUrl}" | head -n 1)
|
|
fi
|
|
|
|
|
|
}
|
|
|
|
# Démarrer la mise à jour du script
|
|
function appliquerMaj()
|
|
{
|
|
echo ""
|
|
echo "Installation de la mise à jour..."
|
|
rm bashadmin.sh
|
|
wget "https://git.mjubault.fr/mjubault/BashAdmin/raw/branch/main/bashadmin.sh"
|
|
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
|
|
}
|
|
|
|
|
|
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
|
|
appliquerMaj
|
|
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 |