Pages

dimanche 26 janvier 2014

Exercices corrigés Linux : Gestion de l’espace disque

Exercice 1:

Créez un fichier texte et un lien dur sur ce fichier dans le même répertoire.
Vérifiez que les deux noms correspondent au même inode.
Changez les permissions de l’un et vérifiez que les permissions de l’autre ont suivi.
Modifiez le contenu de l’un et relisez le contenu de l’autre.
Supprimez l’un, que devient l’autre ? Essayez de créer un nouveau lien entre un de
ces noms et un nouveau nom dans /tmp. Expliquez.

Correction exercice 1:

kyle> cd; echo tout va bien >fichtext
kyle> ln fichtext lientext
kyle> ls il fichtext lientext
13407 rw r r 2 kyle staff 13 Jan 11 15:26 fichtest
13407 rw r r 2 kyle staff 13 Jan 11 15:26 lientest
kyle> chmod ug=rwx,o= fichtext
kyle> ls il fichtext lientext
13407 rwxrwx 2 kyle staff 13 Jan 11 15:26 fichtest
13407 rwxrwx 2 kyle staff 13 Jan 11 15:26 lientest
kyle> echo tout va de mieux en mieux >>fichtext
kyle> cat lientext
tout va bien
tout va de mieux en mieux
kyle> rm fichtext
kyle> cat lientext
tout va bien
tout va de mieux en mieux
kyle> ln lientext /tmp/lientemp
ln: cannot create hard link '/tmp/lientemp' to
'lientetx': Invalid cross device link
Un lien dur correspond au fait que un seul inode porte deux noms différents.
Du fait que la numérotation des inodes est interne à chaque file system, il est impossible
de créer un lien dur entre deux noms appartenant à deux file system différents.

Exercice 2:

L’option -l de la commande ls permet de connaître le nombre de liens sur un
fichier régulier (deuxième champ). Curieusement, ce champ n’est pas égal à 1 pour
les répertoires, alors qu’il n’est pas possible de créer de liens durs sur des répertoires.
Expliquez la valeur de ce nombre sur votre répertoire d’accueil.

Correction exercice 2:

kyle> cd; ls –ld .
drwx x x 8 kyle staff 2560 Jan 11 14:14 ./
Mon répertoire d’accueil /home/xstra porte plusieurs noms, 8 dans cet
exemple, bien que je ne puisse pas créer de liens durs sur ce répertoire. En effet, il
porte les noms suivants :
kyle  dans le répertoire /home
. dans le répertoire /home/kyle
.. dans chaque sous-répertoire de /home/kyle
Le champ "reference count" de ls l vaut donc :
2 (kyle  et .) + le nombre de sous-répertoires de /home/kyle (.. dans
chaque sous-répertoire).

Exercice 3:

Créez un fichier texte et un lien symbolique sur ce fichier dans le même répertoire.
Quelles sont les permissions du lien symbolique ? Combien de liens possède le
fichier texte ? Avec la commande more, affichez le contenu du lien symbolique.
Effacez le fichier texte. Que devient le lien symbolique ?

Correction exercice 3 :

kyle> echo vive Linux >fich1
kyle> ln s fich1 sl
kyle> ls –ilF
total 8
398 rw r r 1 kyle staff 10 Jan 11 15:52 fich1
407 lrwxrwxrwx 1 kyle staff 5 Jan 11 15:52 sl@ > fich1
§ le lien porte un autre inode, sa longueur est de 5
§ (f.i.c.h.1), ses permissions n'ont pas de valeur.
kyle> more sl
vive Linux
kyle> rm fich1
kyle> ls ilF
407 lrwxrwxrwx 1 kyle staff 5 Jan 11 15:52 sl@ > fich1
kyle> more sl
sl: No such file or directory
§ Le lien pointe sur un nom inexistant (broken link)
kyle>

Exercice 4:

Le disque est plein de vide ! Écrire un petit script affichant sur la sortie standard la
taille cumulée de tous les fichiers réguliers situés sous le répertoire courant, et
l’espace disque total occupé par le répertoire courant et tout ce qu’il contient.do

Correction exercice 4 :

Il existe une différence entre l’occupation disque et la taille réelle des fichiers.
Ceci est dû à l’adressage en blocs (et fragments) sur le disque.
#!/bin/bash
declare i nbrbyte=0
declare i discused=0
declare i n
for i in $(find . type f print)
do
n=$(wc c <$i)
nbrbyte=$((nbrbyte+n))
done
echo Total bytes ... $nbrbyte
echo Disc used ......$(du ks | cut f1) Kbytes


Aucun commentaire:

Enregistrer un commentaire

Partenaires

Computers Blogs

Contactez-nous

Nom

E-mail *

Message *

Tous droits resérvés-www.exercices-corriges.com Seo Blogger Templates