Salut tout le monde.
J'ai un petit souci et j'espère que vous allez pouvoir m'aider.
J'ai écris un petit script PERL qui a pour but de vérifier que des répertoires sont bien montés entre un serveur Linux et un serveur Windows 2003.
Voilà le squelette de mon script :
Donc en gros, je mets le résultat de 'mount' dans un fichier, puis j'ouvre ce fichier et je le parcours.
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
41
42
43
44
45
46
47 #! /usr/bin/perl # output mount system("mount > /root/mountlog2"); # open log unless(open(INPUT, "/root/mountlog2")) { die("cannot open /root/mountlog2\n"); } # parse log my $found=0; while(<INPUT>) { $line=$_; chomp($line); print $_; if($line =~ m!^//10.27.0.136!) { $found++; unless(open(INPUT, "/home/postgresql/mnt/devwin1/checkmountphptmp")) { system("sleep 120"); system("umount -f /home/postgresql/mnt/devwin1/phptmp"); $found--; } } elsif($line =~ m!^//10.27.0.136/Backup!) { $found++; #system("echo 1 > /home/postgresql/mnt/devwin1/checkmountsave_pnb"); unless(open(INPUT, "/home/postgresql/mnt/devwin1/checkmountsave_pnb")) { system("sleep 120"); system("umount -f /home/postgresql/mnt/devwin1/save_pnb"); $found--; } } elsif etc... }
Je vérifie que mes répertoires sont bien montés comme ceci.
Mais apparemment, le fichier n'est pas parcouru dans sa totalité. En effet, vu que j'ai remarqué un problème, j'ai fait afficher via print la variable $_, et voilà ce que cela donne :
Je vous passe un certain nombre de lignes qui ne servent à rien...//10.27.0.133/phptmp on /home/postgresql/mnt/serveur1/phptmp type cifs (rw,mand)
nfsd on /proc/fs/nfsd type nfsd (rw)
//10.27.0.134/phptmp on /home/postgresql/mnt/serveur2/phptmp type cifs (rw,mand)
1
Alors que dans mon fichier mountlog2, j'ai :
On voit donc bien qu'il s'arrête après la ligne concernant le serveur 2, et que $_ m'affiche '1'.//10.27.0.133/phptmp on /home/postgresql/mnt/serveur1/phptmp type cifs (rw,mand) nfsd on /proc/fs/nfsd type nfsd (rw)
//10.27.0.134/phptmp on /home/postgresql/mnt/serveur2/phptmp type cifs (rw,mand)
//10.27.0.136/phptmp on /home/postgresql/mnt/serveur3/phptmp type cifs (rw,mand)
//10.27.0.136/Backup on /home/postgresql/mnt/serveur3/save_pnb type cifs (rw,mand)
etc...
Il y a quelque chose qui m'échappe, mais quoi ???
Si quelqu'un a la solution, je lui en serai très reconnaissant car là, je sèche. je ne suis pas super familier avec PERL et c'est donc peut-être tout simple...mais pas pour moi
Merci d'avance pour vos réponses.
Tchuss, @+, jinpol...
Partager