#1 Le 14/03/2008, à 15:59
- V-LINK
Perl -- Modifier champs d'une ligne du fstab
Bien le bonjour Ubunteros !
Je vous expose mon probleme au combien prenant...
En effet, je suis en train de creer un script perl/bash qui permet de gerer le /etc/fstab et je rencontre un probleme. Je desirerais pouvoir changer les options de montage des partitions et je n'y arrive pas car j'arrive a selectionner le champs sans probleme mais je ne sais pas comment réécrire le fichier... voyez plutot :
sub modmount
{
$viv_userid = `id -u`;
if ($viv_userid !=0)
{
print "La modification d'une partition du fstab requiert d'être logué en tant que root\n\n";
}
else
{
@viv_automnt = `sed -n -e '/[#]/!p' /etc/fstab`;
print "\tPeripheriques\t\tOptions\n\t------------\t\t-------\n";
foreach $viv_line (@viv_automnt)
{
($viv_modperiph,$viv_modmount,$viv_modtype,$viv_modoptions) = split(" ",$viv_line);
print "\t$viv_modperiph\t\t$viv_modoptions\n";
}
print "Entrez le chemin du peripherique donc vous voulez modifier les options (Exemples : /dev/sda1 ou UUID=****) : ";
$viv_modchoix = <STDIN>;
chomp $viv_modchoix;
@viv_modchosenper = grep(/$viv_modchoix/,@viv_automnt);
chomp @viv_modchosenper;
foreach $viv_line2 (@viv_modchosenper)
{
($viv_mod2periph,$viv_mod2mnt,$viv_mod2type,$viv_mod2options,$viv_mod2dump,$viv_mod2pass) = split(" ",$viv_line2);
print "\n$viv_mod2periph\t$viv_mod2mnt\t$viv_mod2type\t$viv_mod2options\t$viv_mod2dump\t$viv_mod2pass\n";
}
print "Entrez les options que vous desirez : ";
$viv_mod2options2 = <STDIN>;
chomp $viv_mod2options2;
print "Configuration originale :\n";
print "---> $viv_mod2periph\t$viv_mod2mnt\t$viv_mod2type\t$viv_mod2options\t$viv_mod2dump\t$viv_mod2pass\n";
print "Configuration modifiée :\n";
print "---> $viv_mod2periph\t$viv_mod2mnt\t$viv_mod2type\t$viv_mod2options2\t$viv_mod2dump\t$viv_mod2pass\n";
modconfirm();
}
}
Voila je serais reconnaissant aux personnes qui pourraient m'aider.
P.S. J'aimerais bien faire en sorte que ma ligne soit a l'endroit de la ligne originale et non la supprimer pour en rajouter une en bas. Cependant si je dois faire cette methode ce n'est rien.
D'avance merci.:D
Hors ligne