• Aucun résultat trouvé

Module ASUR4 Contrôle du 5 février 2021

N/A
N/A
Protected

Academic year: 2022

Partager "Module ASUR4 Contrôle du 5 février 2021"

Copied!
2
0
0

Texte intégral

(1)

IUT des Pays de l’Adour LP RT – ASUR

Module ASUR4

Contrôle du 5 février 2021

Responsable : M. Munier / Durée : 3h 2 page(s)

Évaluation pratique

Documents autorisés !

Accès machines autorisé (pages man, internet,...)

Pour cette évaluation, vous regrouperez tous vos scripts et fichiers texte dans une seule et unique archive (au format zip ou tar.gz) dont le nom est votre nom de famille en lettres minuscules et sans accent. Vous m’enverrez ensuite cette archive par mail à l’adresse suivante : manuel.munier@gmail.com

L’objectif de ce sujet est de construire un système d’archivage rudimentaire. Vous utiliserez pour cela la commande curl sous Unix. Quelques informations concernant curl (liste non exhaustive !) :

• man curl

• « cURL Command Tutorial with Examples » (https://www.booleanworld.com/curl-command-tutorial- examples/)

  

1 Sauvegarde d’une ressource

Écrire un script getOne <URL> <base> <folder> permettant de récupérer et archiver une seule ressource. Ce script prendra 3 paramètres qui lui seront fournis en ligne de commande :

• <URL> → l’URL de la ressource à récupérer

• <base> → le chemin d’accès du répertoire qui sera la racine de votre système d’archivage

• <folder> → le chemin d’accès au sous-répertoire de l’archive que vous créer ; ce chemin sera exprimé relativement au répertoire <base> ci-dessus

Ainsi, par exemple, l’instruction ci-dessous téléchargera le fichier log.messages depuis l’URL spécifiée en 1er paramètre et l’enregistrera localement en tant que /tmp/test/ASUR4/tp_2021_02/essai_01/ log.messages

./getOne http://munier.perso.univ-pau.fr/temp/ASUR4/log.messages /tmp/test/ASUR4 tp_2021_02/essai_01 NB : Pour effectuer vos tests, vous pouvez tout aussi bien utiliser des URLs « locales » telles que file:///etc/fstab ;-)

2 Sauvegarde d’une liste de ressources

Écrire un script getMulti <list> <base> <prefix> permettant cette fois de récupérer et d’archiver une collection de ressources. La liste des URLs à traiter sera passée en 1er paramètre sous forme fichier texte (1 URL par ligne). Le 2nd paramètre précise la racine de votre système d’archivage.

Le 3ème paramètre <prefix> servira à « classer » les différentes sauvegardes ; par exemple, pour indiquer une archive créée le 05/02/2021 à 10h37, nous pourrions utiliser le préfixe 20210205-1037, ce qui nous permettrait ensuite d’afficher la liste de toutes les archives dans l’ordre chronologique avec un simple ls (ordre alphabétique).

Ainsi, par exemple, l’exécution de l’instruction ./getMulti liste.txt /tmp/test/ASUR4 20210205-1307 avec, dans la liste des ressources liste.txt, l’URL http://munier.perso.univ-pau.fr/temp/ASUR4/log.messages , devra enregistrer cette ressource en tant que /tmp/test/ASUR4/20210205-1307/http/munier.perso.univ-pau.fr/temp/ASUR4/log.messages Ce script fera bien évidemment appel au script getOne écrit à la question précédente. À vous de « construire » les bons paramètres avant de l’appeler...

(2)

3 Ajout d’un log

Sur la base du script getMulti de la question précédente, écrire un script getMultiv2 <list> <base> <prefix> <log> qui ajoute la journalisation de différentes informations dans le fichier texte <log> au fur et à mesure de la sauvegarde des ressources. Si le fichier <log> existe déjà, alors les informations seront ajoutées à la fin.

Sur l’exemple de commande donné à la question précédente, l’information à ajouter au log serait la ligne texte suivante où <errCode> représente le code de retour de la commande curl (0 si la commande s’est bien exécutée) :

20210205-1307 http://munier.perso.univ-pau.fr/temp/ASUR4/log.messages <errCode>

Nous aurons ainsi une trace, pour chaque sauvegarde (cf. le préfixe), la liste de toutes les ressources sauvegardées (leur URL) et un code qui nous indique si la sauvegarde de cette ressource s’est bien passée… ou pas.

4 Un dernier pour la route...

Un dernier petit exercice avant de conclure… Écrire les scripts suivants :

a) checkErrors <log> <prefix> <code> qui, à partir du fichier de log <log>, affiche la liste de toutes les URLs des ressources de la sauvegarde <prefix> pour lesquelles le code d’erreur de la commande curl était <code>.

Quelques exemples :

./checkErrors munier.log 20210205-1307 0 → ressources archivées sans erreur

./checkErrors munier.log 20210205-1307 37 → ressources auxquelles nous n’avons pas pu accéder (FILE couldn't read file. Failed to open the file. Permissions ?)

b) statErrors <log> qui, à partir du fichier de log <log>, affiche pour chacune des sauvegardes (cf. préfixe) le pourcentage d’erreurs. Exemple :

20210205-1307 0 % 20210205-1132 3 % ...

  

Fin du sujet

Références

Documents relatifs

dans la balise du paragraphe (méthode sans fichier css) pour changer la couleur du mot test en rouge… puis affecter la classe soustitrecolor à la balise. &lt;p&gt; en

Ecrire une fonction ´ int simul(int m) qui compare le nombre de couleurs utilis´ ees par l’algo exact et par DSATUR pour colorier m graphes al´ eatoires pour n et p fix´

a - Choisir des 7 mots de telle sorte qu'ils ontiennent tous les aratères aentués possibles. b - Erire une page HTML ontenant une ou deux phrases onstitués des

[r]

[r]

I, Elda de Carvalho, as the coordinator of Moris Foun Group, which weave Tais in Uani Uma Village, declare that our group is surely ready that we agree to the government’s program and

[r]

[r]