diff --git a/back b/back new file mode 100644 index 0000000..bf2e325 --- /dev/null +++ b/back @@ -0,0 +1,15 @@ +#!/bin/bash + +CURDate=$(date "+%Y%m%d%H%M") +FileName=$CURDate$DBUSER +DIR="./" +DIRAPACHE="/var/www" +DBHOST="" #--host= +if [ $# -gt 0 ] ; then + DIR=$1 + echo "$1" +fi +if [ ! -d $DIR ]; then + mkdir $DIR + echo $DIR +fi diff --git a/backsql b/backsql new file mode 100755 index 0000000..f6f31f4 --- /dev/null +++ b/backsql @@ -0,0 +1,31 @@ +#!/bin/bash +DBUSER="" +DBPASSWORD="" +CURDate=$(date "+%Y%m%d%H%M") +FileName=$CURDate$DBUSER +DIR="./" +DBHOST="" #--host= +if [ $# -gt 0 ] ; then + DIR=$1 +fi +if [ ! -d $DIR ]; then + mkdir $DIR +fi + +echo "Nom d'utilisateur" +read DBUSER #--user +unset DBPASSWORD #--password= +prompt="Mot de passe :" +while IFS= read -p "$prompt" -r -s -n 1 char +do + if [[ $char == $'\0' ]] + then + break + fi + prompt='*' + DBPASSWORD+="$char" +done + + + +mysqldump --host=$DBHOST --user=$DBUSER --password=$DBPASSWORD --all-databases > "$DIR/$FileName.sql" diff --git a/consigne.txt b/consigne.txt new file mode 100644 index 0000000..8a30d49 --- /dev/null +++ b/consigne.txt @@ -0,0 +1,60 @@ +Haute Ecole de la ville de Liège – Catégorie Technique +2IS – LINUX – R. Billen +Exercices BASH – mars 2015 + +Explications orales données en séance de laboratoire. + +=== 1 === +sudo ./apachestart +sudo ./mysqlstart +sudo ./apachestop +sudo ./mysqlstop + +Signaler que l’opération demandée va démarrer. + +=== 2 === +sudo ./apache [start | stop |…un des différents paramètres] +sudo ./mysql [start | stop |…un des différents paramètres] + +Signaler une erreur de valeur du paramètre. +Signaler que l’opération demandée va démarrer. + +=== 3 === +sudo ./serveur [apache|mysql] [start|stop|…un des différents paramètres] + +Signaler une erreur de valeur de paramètre. +Signaler que chaque opération demandée va démarrer. + +Sauvegarder dans des fichiers apache.log et mysql.log date, heure et opération (1 ligne par occurrence d’un événement). Utiliser l’opérateur de redirection >>. + +NB : dans le répertoire /var/log, créer au préalable un répertoire nommé serveurs, et dans celui-ci, les deux fichiers vides apache.log et mysql.log avec des droits d’accès adéquats. (justifiez votre choix). + +=== 4 === +Sudo ./bakmysql repertoirededestinationmysql + +Le répertoire de destination doit exister – s’il n’existe pas (il convient d’écrire le code qui détecte cela), le créer (et le signaler à l’utilisateur). Le fichier de destination contenant le script SQL contiendra dans son nom, la date et l’heure de la sauvegarde et aura l’extension .sql . + +Il conviendra d’utiliser l’utilitaire mysqldump et de sauvegarder toutes les bases de données stockées sur le serveur. + +Saisie au clavier du compte utilisateur mysql et du mot de passe (dans ce dernier cas, on ne peut pas voir la saisie de l’utilisateur). + +Exercice de dépassement : prévoir le déclenchement automatique de l’opération de sauvegarde tous les jours à 03h. + +=== 5 === +Sudo ./bakapache repertoirededestinationapache + +Ce script a pour but de sauvegarder une archive compressée du répertoire /var/www + +Le répertoire de destination doit exister – s’il n’existe pas (il convient d’écrire le code qui détecte cela), le créer (et le signaler à l’utilisateur). Le fichier de destination contiendra dans son nom, la date et l’heure de la sauvegarde et aura l’extension .tar.gz . + +Exercice de dépassement : prévoir le déclenchement automatique de l’opération de sauvegarde tous les jours à 04h. + +=== 6 === +Sudo ./bakhome repertoirededestinationhome + +Ce script a pour but de sauvegarder une archive compressée du répertoire /home + +Le répertoire de destination doit exister – s’il n’existe pas (il convient d’écrire le code qui détecte cela), le créer (et le signaler à l’utilisateur). Le fichier de destination contiendra dans son nom, la date et l’heure de la sauvegarde et aura l’extension .tar.gz . + +Exercice de dépassement : prévoir le déclenchement automatique de l’opération de sauvegarde tous les jours à 05h. + diff --git a/serveur b/serveur index be93e1a..28d6b9e 100755 --- a/serveur +++ b/serveur @@ -1,9 +1,13 @@ #!/bin/bash +LOGPATH="./serveur.log" +( +echo "DEBUT $(date +"%D %T")" if (( $EUID != 0 )); then echo "Il faut les droit root pour executer la tache" + echo "FIN $(date +"%D %T")" exit 1 fi -if [[ $# == 3 && $1 == @(apache2|mysql) && $2 == @(apache2|mysql) ]]; then +if [[ $# == 3 && $1 == @(apache2|mysql) && $2 == @(apache2|mysql) ]]; then # if [ "$3" = "reload" ] then echo "reload n'est pas une opéopération permise par mysql Il sera donc arrêter puis démarer" @@ -28,5 +32,20 @@ if [[ $# == 3 && $1 == @(apache2|mysql) && $2 == @(apache2|mysql) ]]; then echo "$3 non reconnu" fi elif [[ $1 == @(apache2|mysql) && $2 == @(start|stop|reload) ]]; then - + case $2 in + start|stop) + service $1 $2 + echo "SUCCESS : $1 $2" + ;; + reload) + service $1 stop + service $1 start + echo "SUCCESS : $1 $2" + ;; + *) + echo "ERROR : $2 non reconnu" + ;; + esac fi +echo "FIN $(date +"%D %T")" +) 2>&2 | tee -a $LOGPATH diff --git a/serveur.log b/serveur.log new file mode 100644 index 0000000..690759b --- /dev/null +++ b/serveur.log @@ -0,0 +1,33 @@ +Il faut les droit root pour executer la tache +Il faut les droit root pour executer la tache +DEBUT 12/13/17 11:33:40 +Il faut les droit root pour executer la tache +DEBUT 12/13/17 11:34:18 +Il faut les droit root pour executer la tache +FIN 12/13/17 11:34:18 +DEBUT 12/13/17 11:34:33 +Il faut les droit root pour executer la tache +FIN 12/13/17 11:34:33 +DEBUT 12/13/17 11:34:46 +FIN 12/13/17 11:34:48 +DEBUT 12/13/17 11:35:46 +SUCCESS : apache2 start +FIN 12/13/17 11:35:46 +DEBUT 12/13/17 11:35:56 +apache2 mysql sont start +FIN 12/13/17 11:35:57 +DEBUT 12/13/17 11:36:08 +apache2 mysql sont stop +FIN 12/13/17 11:36:15 +DEBUT 12/13/17 11:36:36 +reload n'est pas une opéopération permise par mysql + Il sera donc arrêter puis démarer +Le service mysql à bien redémarer +Le service apache démare +FIN 12/13/17 11:36:39 +DEBUT 12/13/17 11:36:59 +reload n'est pas une opéopération permise par mysql + Il sera donc arrêter puis démarer +Le service mysql à bien redémarer +Le service apache à bien été recharger +FIN 12/13/17 11:37:04