Danda, Richard SFC wrote:
Greetings all,
I have a NetApp FAS270 filer that I have migrated NFS data directories too.
I need to make changes to all my RHEL machines to point to the new device
for mounts. Is there an easy way to script the change?
YOU WANT US TO DO YOUR HOMEWORK?!
Try this perl script, it's probably unelegant as hell but I found it in
my "hacks" directory.
No guarantees!!! Try it first manually, then set reallyWrite to 1 to
replace your fstab.
Fix the regular expressions for your case.
----------8<-------------------------8<-------------------------8<------------------
#!/usr/bin/perl
# Program that can be used to replace stuff in some file
$file = $ARGV[0];
if (!defined $file) {
die "You have to pass the name of the file to modify on the
commandline\n";
}
if (!(-f $file && -r $file && -w $file)) {
die "The file '$file' is not accessible or not writeable\n";
}
open(FILE,"<$file") or die "Could not open '$file' for reading: $!\n";
@buffer = (); # Takes up the file lines that we will write eventually
while ($line = <FILE>) {
chomp($line);
if ($line =~ /^hostA\:(.*)$/) {
push(@buffer,"hostB:$1");
next;
}
else {
# just keep the line as is
push(@buffer,$line);
next;
}
if ($line ne $buffer[@buffer-1]) {
print STDERR "Line changed\n";
print STDERR "From: $line\n";
print STDERR "To: $buffer[@buffer-1]\n";
}
}
close(FILE) or die "Could not close '$file': $!\n";
# Now we will write, replacing the existing file (if reallyWrite is set
to 1)
$reallyWrite = 0;
if ($reallyWrite) {
open(FILE,">$file") or die "Could not open '$file' for writing: $!\n";
foreach $line (@buffer) {
print FILE "$line\n";
}
close(FILE) or die "Could not close '$file': $!\n";
}
else {
foreach $line (@buffer) {
print "$line\n";
}
}
--
redhat-list mailing list
unsubscribe mailto:redhat-list-request@xxxxxxxxxx?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/redhat-list