install_env_fj.pl
cs2tgz2.pl
tgz2.pl
bonjour je suis nouveau dans la programmation et je dois faire du perl j'aurais aimer avoir de l'aide concernant des script perl car je n'y comprend rien serais t'il possible que quelqu'un m'aide à faire un exercices avec explication SVP MERCI
Voici les 2 script :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 En vous servant des scripts cs2tgz2 et install_env_fj et en vous inspirant du script cgz écrivez un script qui récupère les fichiers mentionnés dans cs2tgz2 dans leur version présente sur l'ordinateur où le script s'exécute et en fait une archive compressée semblable à env_fj.30.tgz le nombre devant '.tgz' doit être celui de la version de cs que vous récupérez, et que vous pouvez obtenir par 'csver' Pour faire cela, il faut créer une structure telle que celle produite par la décompression de env_fj.30.tgz et la compresser ensuite comme le fait cgz cs2tgz2 = point de départ, donnant la liste des fichiers qui doivent se retrouver dans le tgz pour l'utilisation 'chez soi' des fonctions de 'cs' install_env_fj = script contenu dans le tgz et à utiliser pour l'installer 'chez soi' cgz = script faisant partie de la configuration 'cs' et automatisant un type de compression env_fj.30.tgz = compression permettant d'installer un environnement de type 'cs', sans accès réseau (version pas identique à celle que votre script doit réaliser)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 #!/usr/bin/perl $files = <<FILES; raf_liste etc raf bin x alias_liste etc adaf bin x cgz bin mt bin nv bin install_env_fj bin csver bin csv.pl bin r cs bin FILES # $files contient maintenant tous les paramètres de ma configuration standard # et je peux la modifier très simplement # le format que j'ai choisi sera explicité dans le 'foreach' qui suit # (et qui utilise ces paramètres) : # fichier répertoire exécution # le 3° paramètre (exécution) étant optionnel # pour chaque ligne on définit donc : # le nom du fichier qu'il faut télécharger du serveur # dans quel sous-répertoire (de /usr/local/) il faut le mettre # et s'il faut l'exécuter : # x : immédiatement # r : à chaque démarrage # pour utiliser les paramètres contenus dans $files, # je préfère les transférer dans une variable de type vecteur, # pour pouvoir utiliser 'foreach' # cela se fait simplement par un 'split' avec une 'fin de ligne' (\n) comme séparateur # (pour éviter une composante vide, # correspondant à ce qu'il y a derrière le dernier \n, # je fais d'abord un 'chomp' chomp $files; @files = split(/\n/,$files);et le fichier cgz
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 #!/usr/bin/perl $param = shift; $id=`whoami`; chomp $id; if ($id ne "root") { print "Il faut être 'root' pour pouvoir installer la configuration standard\n"; exit; } system("cp bin/* /usr/local/bin/"); system("cp etc/* /usr/local/etc/"); system("/usr/local/bin/raf"); system("/usr/local/bin/adaf"); system("chmod +s /sbin/fdisk");
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 #!/usr/bin/perl $nom = shift; # 1° paramètre à la ligne de commande chomp $nom; if ($nom eq "") { print "\n1° paramètre = nom du répertoire à compresser\n"; print "2° paramètre (optionnel) = numéro de la version\n\n"; exit; } $nom =~ s/\///; $version = shift; # 2° paramètre à la ligne de commande chomp $version; if ($version eq "") { system("tar czvf $nom.tgz $nom"); } else { system("tar czvf $nom.$version.tgz $nom"); }
Partager