Vous savez maintenant tout ce qu'il faut pour créer des scripts BASH automatisant des tâches.
Vous aurez aujourd'hui à créer des scripts BASH. Nommez bien vos fichiers comme indiqué à chaque début d'exercice
Seul le travail en binôme est autorisé
Vos scripts sont à envoyer à l'adresse jeremysalmon.openlab@gmail.com
Veillez bien à mettre les noms, prénoms de votre binôme.
Créer un script qui permet de compresser l'ensemble du répertoire /etc/ dans un fichier .tar.gz.
Le script prend un paramètre, le nom du fichier à générer
Le résultat de la compression est à mettre dans /tmp/
Résultat attendu :
compress.sh 21052016
Devra générer un fichier 21052015.tar.gz dans /tmp/
Ce fichier contiendra l'ensemble du répertoire /etc/
#!/bin/bash
if [ $# -ne 1 ]
then
echo "Utilisation : compress.sh nom_du_fichier"
exit
fi
tar vczf /tmp/$1.tar.gz /etc/ > /dev/null 2>&1
echo "Compression dans /tmp/$1.tar.gz effectuee"
Créer un script qui analyse un fichier de log d'authentification et qui repère les erreur d'authenficiation SSH.
Récupérer le fichier auth.log à la racine de ce support de cours.
Le fichier à analyser sera passé en paramètre
sshHack.sh /tmp/auth.log
affichera
Il y a 39 erreurs d'authentification
Dernière erreur d'authentification à 23:12:34
#!/bin/bash
if [ $# -ne 1 ]
then
echo "Utilisation : sshHack.sh CHEMIN_ET_NOM_FICHIER"
exit
fi
if [ ! -f $1 ]
then
echo "Le fichier $1 n existe pas"
exit
fi
compteur=`grep "authentication failure" auth.log |wc -l`
echo "$compteur erreurs d authentification dans $1"
exit
Créer un script qui retourne si un paquet est installé ou non sur la machine.
Le nom du paquet a rechercher est à passer en paramètre
isInstalled.sh mysql-server
Retournera :
Le paquet est INSTALLE
si il est présent sur la machine
Le paquet est MANQUANT
s'il n'est pas installé
#!/bin/bash
if [ $# -ne 1 ]
then
echo "Utilisation : isInstalled.sh NOM_DU_PAQUET"
exit
fi
installed=`dpkg-query -l $1 |grep ii |wc -l`
if [ $installed -eq 1 ]
then
echo "Le paquet $1 est installe"
exit
fi
L'objectif est de faire un script qui permet de mettre un fichier dans un répertoire corbeille
L'emplacement du répertoire corbeille
est à votre convenance
Le script doit permettre :
jeter.sh -l
: affiche le contenu du répertoire corbeillejeter.sh -a FICHIER
: déplace le FICHIER dans le répertoire corbeillejeter.sh -d FICHIER
: supprime définitivement le fichier de la corbeillejeter.sh --flush
: vide entièrement la corbeille
#!/bin/bash
if [ $# -lt 1 ]
then
echo "Utilisation : "
echo "jeter.sh -l : affiche le contenu du répertoire corbeille"
echo "jeter.sh -a FICHIER : déplace le FICHIER dans le répertoire corbeille"
echo "jeter.sh -d FICHIER : supprime définitivement le fichier de la corbeille"
echo "jeter.sh --flush : vide entièrement la corbeille"
exit
fi
if [ ! -d "/tmp/corbeille" ]
then
mkdir /tmp/corbeille
fi
case "$1" in
-l)
echo `ls -l /tmp/corbeille`
exit
;;
-a)
if [ $# -ne 2 ]
then
echo "Utilisation : jeter.sh -a FICHIER"
exit
fi
mv $2 /tmp/corbeille/
echo "Le fichier $2 a été déplacé dans /tmp/corbeille"
exit
;;
-d)
if [ $# -ne 2 ]
then
echo "Utilisation : jeter.sh -d FICHIER"
exit
fi
if [ ! -e "/tmp/corbeille/$2" ]
then
echo "Le fichier $2 n existe pas dans la corbeille !"
echo "Impossible de continuer"
exit
fi
rm /tmp/corbeille/$2
echo "Le fichier $2 a été supprimé de la corbeille"
exit
;;
--flush)
rm /tmp/corbeille/*
echo "La corbeille a été vidée avec succès"
exit
;;
esac
echo "Le parametre $1 est inconnu"
exit