Téléchargez comme PDF, TXT ou lisez en ligne sur Scribd
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 2
LO14
PROJET Linux 2014
Ce projet a pour objectif de crer un serveur darchive. 1 DESCRIPTION DU PROJET Vous devez avoir cr pralablement plusieurs archives sur le serveur avec la structure dfinie dans le paragraphe 1.1. Vous allez interroger votre serveur par lintermdiaire dune nouvelle commande shell, nomme vsh, qui fonctionne selon les modes suivants: 1 er mode: c'est le mode list : vsh -list nom_serveur port Cette commande permet dafficher la liste des archives prsentes sur le serveur. nom_serveur reprsente ladresse du serveur et port le numro du port sur lequel le serveur attend une requte. 2 me mode: c'est le mode browse : vsh -browse nom_serveur port nom_archive Cette commande vous permet d'explorer sur le serveur l'archive nom_archive en vous faisant entrer dans un mode shell vsh. 3 me mode: c'est le mode extract : vsh -extract nom_serveur port nom_archive Cette commande permet d'extraire le contenu de l'archive nom- archive dans le rpertoire courant de la machine cliente. 1.1 Description de larchive Une archive est un fichier qui permet de reprsenter l'arborescence d'un rpertoire et le contenu de tous les fichiers de cette arborescence. Une archive se compose de deux parties. La premire partie, appele header, dcrit l'arborescence des fichiers. La seconde partie, appele body, reprsente le contenu des diffrents fichiers. La premire ligne de l'archive correspond : <numro de ligne du dbut du header>:<numro de ligne du dbut du body> Puis on trouve les informations du header et enfin le body. Header Le header est un ensemble de rpertoires juxtaposs les uns en dessous des autres. Chaque rpertoire satisfait le format suivant : directory <dir> Liste des fichiers et rpertoires contenus dans <dir> @ o <dir> correspond au nom du rpertoire. La liste des fichiers et rpertoires contenus dans <dir> doit avoir le format suivant: <nom> <droits d'accs> <taille> (informations complmentaires) Par exemple, on pourra avoir: toto drwxr-x--x 512 tutu -rw-r--r-- 1024 4 10 La premire ligne dcrit un rpertoire qui a pour nom toto, pour taille 512 et pour droits d'accs rwxr-x--x. La seconde ligne correspond un fichier de nom tutu, de taille 1024 et de droits d'accs rw-r--r--. Les deux nombres 4 et 10 prcisent que le contenu du fichier tutu commence la 4 me ligne du body de l'archive et occupe au total 10 lignes. On note qu'un fichier vide a pour taille 0 et ne possde donc pas d'informations complmentaires. Body Le body contient les contenus de tous les fichiers non vides de l'arborescence dcrite dans la partie header. Pour simplifier, on ne traite que des fichiers textes. Exemple darchive (arch) 3:25 directory Exemple/Test/ A drwxr-xr-x 4096 B drwxr-xr-x 4096 toto1 -rwxr-xr-x 29 1 3 toto2 -rw-r--r-- 249 4 10 @ directory Exemple/Test/A A1 drwxr-xr-x 4096 A2 drwxr-xr-x 4096 A3 drwxr-xr-x 4096 toto3 -rw-r--r-- 121 14 3 @ directory Exemple/Test/A/A1 toto4 -rw-r--r-- 0 17 0 @ directory Exemple/Test/A/A2 @ directory Exemple/Test/A/A3 @ directory Exemple/Test/B bar -rw-r--r-- 202 17 6 @ #!/bin/bash echo "bonjour!" NAME ls - list directory contents SYNOPSIS ls [OPTION]... [FILE]... DESCRIPTION LO14 PROJET Linux 2014 List information about the FILEs. DESCRIPTION man formats and displays the on-line manual pages. NAME cat - concatenate files and print on the standard output SYNOPSIS cat [OPTION] [FILE]... DESCRIPTION Concatenate FILE(s), or standard input, to standard out- put. 1.2 Description du mode list Le mode list permet simplement dafficher, sur la machine cliente, la liste des archives prsentes sur le serveur. Pour simplifier le projet, on considrera que lon dispose de loutil qui permet de crer les archives partir dun systme de fichiers (vous crerez les archives la main). 1.3 Description du mode browse Pour implmenter les fonctions du mode browse vous aurez besoin dune archive. Pour crer larchive reportez vous au chapitre prcdent. Nous allons utiliser lexemple prcdent pour dcrire le mode browse. Pour cela nous considrerons que lexemple est stock dans un fichier texte not arch . Concentrez vous d'abord sur les commandes: pwd, ls et cd. La commande pwd: Elle a les mmes fonctionnalits que la fonction classique pwd : elle affiche le rpertoire courant. Lorsque vous entrez dans le shell vsh, pwd doit retourner la racine c'est dire /. Evidemment lorsque vous vous dplacerez dans l'archive l'aide de la fonction cd, pwd devra tout moment indiquer le rpertoire courant. Par exemple, $ vsh browse arch vsh:> pwd / vsh:> cd A vsh:> pwd /A Note: Remarquez que la racine / correspond Exemple/Test/ dans l'archive. La commande ls: La commande ls s'inspire elle aussi de la commande shell ls que vous connaissez, c'est--dire, elle liste tous les rpertoires et fichiers contenus dans le rpertoire courant. $ vsh -browse arch vsh:> ls A/ B/ toto1* toto2 vsh:> ls A A1/ A2/ A3/ toto3 A l'affichage, les rpertoires seront suivis d'un / et les fichiers excutables d'une *. La commande cd: La commande cd permet de vous dplacer dans l'archive. Ainsi "cd /" vous permet d'aller la racine de l'archive; "cd .." vous permet de remonter d'un niveau dans la hirarchie; et "cd A" de vous dplacer dans le rpertoire A. La commande cat: La commande "cat toto1" affiche le contenu du fichier toto1 s'il existe. La commande rm: La commande "rm toto1" permet de supprimer le fichier toto1 de l'archive. Cette commande peut galement s'appliquer un rpertoire. En consquence, elle supprimera lensemble du contenu du rpertoire. Les commandes devront fonctionner avec les chemins relatifs et absolus. N'oubliez pas de traiter les messages d'erreur. Par exemple, "cd toto" doit chouer si toto est un fichier ou s'il n'existe pas. De faon gnrale, vos commandes devront avoir le mme comportement que celles du shell classique. 1.4 Description du mode extract Le mode extract a pour action de crer dans le rpertoire courant toute l'arborescence de rpertoires et les fichiers contenus dans l'archive nom_archive. Ainsi "vsh -extract nom_serveur port nom_archive" a pour effet de restaurer l'arborescence et les fichiers dans le rpertoire courant de la machine cliente. Vous devrez vous assurer que les rpertoires et les fichiers crs ont bien les mmes droits d'accs que ceux prciss dans l'archive. Ainsi si un fichier toto1 de l'archive a les droits -rw-r- -r-- et un autre fichier toto2 a les droits -rw-------, une fois restaurs, les fichiers toto1 et toto2 auront respectivement les droits -rw-r--r-- et -rw------- . 2 RAPPORT ET PRESENTATION Ce projet doit tre effectu en binme. Etant donn que ce projet comporte plusieurs parties, il est conseill ds le dbut de se rpartir le travail. Un rapport de quelques pages doit tre rendu lencadrant lors de la semaine prcdant les finaux. Une prsentation et un test du shell seront effectus pendant cette sance. Bon courage ! ! !