jinpol
Habitué
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 :
[cpp]#! /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...
}[/cpp]
Donc en gros, je mets le résultat de 'mount' dans un fichier, puis j'ouvre ce fichier et je le parcours.
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...
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'.
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...
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 :
[cpp]#! /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...
}[/cpp]
Donc en gros, je mets le résultat de 'mount' dans un fichier, puis j'ouvre ce fichier et je le parcours.
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 :
//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
Je vous passe un certain nombre de lignes qui ne servent à rien...
Alors que dans mon fichier mountlog2, j'ai :
//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...
On voit donc bien qu'il s'arrête après la ligne concernant le serveur 2, et que $_ m'affiche '1'.
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...