Contrôle Final 1 – Année 2016/2017
Pour faire les exercices, vous avez besoin de connaître le langage bash. Vous pouvez vous référer à l'annexe shell que vous pouvez trouver ici.
Préparation (2 points, ∼5mn)
Un petit serveur de messagerie (11 points, ∼40mn)
- send est utilisé pour poster un message. Pour ce type de requête, le second mot est le nom de l'utilisateur destinataire du message, et les mots suivants constituent le message.
- recv est utilisé pour recevoir les messages d'un utilisateur. Pour ce type de requête, le second mot est le nom de l'utilisateur qui souhaite consulter ses messages.
(4 point)
- crée un tube nommé tube-server,
- ouvre le tube en lecture-écriture,
- et exécute une boucle infinie (while true; do ... done)
dans laquelle le serveur lit les lignes reçues dans le tube.
Lors de la lecture d'une requête, vous veillerez à stocker :
- le type de la requête dans une variable nommée type,
- l'utilisateur associé à la requête dans une variable nommée id,
- la fin de la requête dans une variable nommée msg.
(2 point)
2 points
- afficher les messages reçus par id (et qui sont stockés dans le fichier id) sur la sortie standard du serveur,
- puis supprimer le fichier id.
3 points
1 point, bonus
Le plus gros fichier (7 points, ∼30mn)
On souhaite écrire un script max_size.sh qui prend un fichier en argument. Un appel possible est :
Le but de ce script est d'afficher le nom et la taille du plus gros fichier parmi tous les fichiers du répertoire dir.
6 points
On souhaite dans un premier temps écrire un script qui ne considère que les fichiers situés dans le répertoire dir passé en paramètre, sans considérer les fichiers situés dans des sous-répertoires de dir.
Si le paramètre dir n'est pas donné ou si dir n'est pas un répertoire, le script doit se terminer en affichant un message d'erreur.
Une exécution possible est :
Écrivez le script max_size.sh qui:
- Vérifie que le nombre de paramètre est correct
- Vérifie que le paramètre dir est bien un répertoire
- Parcourt les fichiers du répertoire dir et
- calcule la taille de chaque fichier
- trouve la taille maximale
- Affiche le nom et la taille du plus gros fichier trouvé