12X009 – TP5 (Solution)

$ 20.99
Category:

Description

Guillaume Chanel
1 Objectifs
L’objectif gØnØral du TP est de crØer un programme qui permet de faire des backups d’architecture de chiers facilement, en s’insiprant du programme rsync.
Les objectifs pØdagogiques sont de:
manipuler des chiers;
obtenir et modi er les attributs d’un inode; manipuler des liens;
parcourir des architectures de dossiers
Ce TP ce fera sur deux scØances. Dans le cas oø vous terminez la premiŁre scØance en avance nous vous recommendons fortement de continuer directement sur la deuxiŁme qui est un peu plus longue.
2 Le programme rsync
Le programme rsync permet de faire des copies d’architectures de chiers. Il est trŁs utilisØ notament pour faire des backups incrØmentaux travers le rØseau. En e et rsynch peut Øgalement faire des copies d’architextures de chiers distance. Dans ce TP nous nous limiterons la crØation d’un programme qui permettra de:
lister les chiers d’un dossier de maniŁre rØcursive; copier le contenu d’un dossier dans un autre de maniŁre rØcursive.
Il s’agit donc d’un rsync trŁs simpli Ø et sans copies distance. Nous vous recommandons toutefois de lire rapidement la documentation de rsync car ce programme pourra vous Œtre utile dans le future.
Le programme que nous developerons s’appellera ultra-cp.
3 Listing de chiers
Cette sØction fera l’objet du premier TP. Il s’agit ici de lister le contenu complet d’un dossier. Ainsi TOUS les chiers, dossiers et sous-dossiers doivent Œtre listØs.
Cette liste sera e ectuØe lorsque le programme sera appellØ avec un seul argument. Si cet argument est un chier, uniquement le chier est listØ, si cet un dossier alors le programme se comportera comme mentionnØ ci-dessus.
Voici un exemple de sortie du programme:
> ultra-cp ../../TP5
drwxrwxr-x 4096 Mon Nov 9 10:09:47 2015 ../../TP5 drwxrwxr-x 4096 Thu Nov 19 14:56:59 2015 ../../TP5/doc -rw-rw-r– 928 Thu Nov 19 14:56:24 2015 ../../TP5/doc/TP5.aux
-rw-rw-r– 152 Thu Nov 19 14:56:24 2015 ../../TP5/doc/TP5.out
-rw-rw-r– 85 Thu Nov 19 14:55:08 2015 ../../TP5/doc/Makefile
-rw-rw-r– 143314 Thu Nov 19 14:56:24 2015 ../../TP5/doc/TP5.pdf -rw-rw-r– 6150 Thu Nov 19 14:56:59 2015 ../../TP5/doc/TP5.tex
-rw-rw-r– 6151 Thu Nov 19 14:55:48 2015 ../../TP5/doc/TP5.tex~ -rw-rw-r– 25261 Thu Nov 19 14:56:24 2015 ../../TP5/doc/TP5.log drwxrwxr-x 4096 Thu Nov 19 14:17:51 2015 ../../TP5/src -rw-rw-r– 8480 Thu Nov 19 14:02:33 2015 ../../TP5/src/main.o
-rw-rw-r– 358 Thu Nov 19 13:30:48 2015 ../../TP5/src/Makefile
-rw-rw-r– 1180 Thu Nov 19 11:11:29 2015 ../../TP5/src/options.h
-rw-rw-r– 10250 Thu Nov 19 14:17:27 2015 ../../TP5/src/proc_entries.c -rw-rw-r– 1141 Thu Nov 19 14:14:04 2015 ../../TP5/src/proc_entries.h
-rw-rw-r– 395 Thu Nov 19 13:28:18 2015 ../../TP5/src/err.c
-rw-rw-r– 365 Thu Nov 19 13:28:55 2015 ../../TP5/src/err.h
-rw-rw-r– 6520 Thu Nov 19 14:01:27 2015 ../../TP5/src/err.o
-rw-rw-r– 2859 Thu Nov 19 14:02:30 2015 ../../TP5/src/main.c
-rw-rw-r– 7920 Thu Nov 19 14:01:27 2015 ../../TP5/src/options.o
-rw-rw-r– 14520 Thu Nov 19 14:17:51 2015 ../../TP5/src/proc_entries.o
-rw-rw-r– 2711 Thu Nov 19 13:24:45 2015 ../../TP5/src/options.c
-rwxrwxr-x 28259 Thu Nov 19 14:17:51 2015 ../../TP5/src/ultra-cp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
La sortie est donc similaire la fonction ls et elle contient:
le type de chier: d pour un dossier, – pour un chier rØgulier, l pour un lien; d’autre peuvent Œtre implØmentØs;
les droits en lecture/Øcriture/exØcution: les droits d’accŁs ne concernent que les droits basiques mentionnØs; les bits setuid/setgid, sticky bit et autres ne seront pas reprØsentØs; la taille du chier en octets;
La plus part des informations sont disponibles par les commandes lstat/stat/fstat vues en cours.
4 Backup de dossiers et chiers
4.1 Utilisation
Cette section fait l’objet du deuxiŁme TP. En se basant sur le code dØvelopØ prØcØdement vous devrez dØsormais faire une copie rØcursive de l’arthictecture des dossiers/ chiers. Cela sera le cas lorsque ultra-cp sera utilisØ avec au moins deux paramŁtres: des sources et une unique destination. Si la destination est un dossier existant, chaque source spØci Øe sera recrØe dans la destination.
Ainsi, la commande:
ultra-cp file1 folder1 folder2/ destination
1 aura pour e et de crØer l’architecture suivante dans destination:
drwxrwxr-x 4096 Thu Nov 19 15:09:28 2015 destination
drwxrwxr-x 4096 Thu Nov 19 15:09:58 2015 destination/folder1
drwxrwxr-x 4096 Thu Nov 19 15:09:58 2015 destination/folder1/emptydir
-rw-rw-r– 0 Thu Nov 19 15:09:50 2015 destination/folder1/f2
-rw-rw-r– 0 Thu Nov 19 15:09:48 2015 destination/folder1/f1
drwxrwxr-x 4096 Thu Nov 19 15:10:06 2015 destination/folder2
-rw-rw-r– 0 Thu Nov 19 15:10:04 2015 destination/folder2/f5
-rw-rw-r– 0 Thu Nov 19 15:10:06 2015 destination/folder2/f4
-rw-rw-r– 14 Thu Nov 19 15:09:21 2015 destination/file1
1
2
3
4
5
6
7
8
9
Si le programme est appelØ avec deux chiers dans ce cas le chier source sera copiØ vers le chier de destination. Si la destination n’Øxiste pas alors elle sera considØrØe comme un chier
crØer (le programme fera alors une erreur dans le cas ou il y plusieurs sources).
Uniquement les chiers rØguliers, les liens et les dossiers devrons Œtre copiØs (i.e. pas les sockets, block devices, etc.).
Les chiers et dossiers crØes/modi Øs auront les mŒmes droits (si possible) que les sources. Question: dans quel cas les droits ne pourrons pas Œtre les mŒmes ?
4.2 Modi cation de chiers existants
Le programme pourra remplacer des chiers Øxistants mais ne devra jamais supprimer des chiers/dossiers. Donc si un chier est prØsent dans la destination mais pas dans la source il ne devra PAS Œtre supprimØ de la destination.
Si l’option ’-a’ est passØe en paramŁtre par l’utilisateur, les droits des chiers/dossiers devront Œtre modi Øs mŒme si le chier/dossier n’a pas ØtØ remplacØ.
4.3 Gestion des liens
Par dØfaut les liens seront dØrØfØrencØs (i.e. transformØs en chiers et dossiers lors de la copie), sauf si l’utilisateur a passØ l’option ’-f’ en paramŁtre du programme. Dans se cas les liens seront copiØs en tant que lien. De plus les liens de destination seront ajustØs pour garantir qu’ils pointent bien vers le mŒme inode que le lien source (indice: Øviter les chemins relatifs, la fonction realpath sera utile pour cela).

Reviews

There are no reviews yet.

Be the first to review “12X009 – TP5 (Solution)”

Your email address will not be published. Required fields are marked *