#!/usr/bin/perl # loncaparestoreconfigurations # This tool helps in updating a system. It takes a list of # .rpmsave files and restores them. # Scott Harrison, 10/25/2000 use strict; my @special_conf_files=( "/etc/httpd/conf/access.conf", "/etc/smb.conf" ); my @generic_conf_files=( "/home/httpd/lonTabs/hosts.tab", "/home/httpd/lonTabs/spare.tab", "/etc/krb.conf", "/etc/ntp.conf", ); my @perlsetvars=("lonHostID","lonRole","lonAdmEMail","lonDefDomain","lonLoadLim","lonExpire"); my %pvar; foreach (@special_conf_files) { if (/^\/etc\/httpd\/conf\/access.conf$/) { my $template=`/bin/cat /etc/httpd/conf/access.conf`; my $rpmsave=`/bin/cat /etc/httpd/conf/access.conf.rpmsave`; `/bin/mv /etc/httpd/conf/access.conf /etc/httpd/conf/access.conf.template`; foreach my $psv (@perlsetvars) { $rpmsave=~/\nPerlSetVar\s+$psv\s+(\S+)/; my $pval=$1; $template=~s/(\nPerlSetVar\s+$psv\s+)\S+/$1$pval/; $pvar{$psv}=$pval; } open OUT,">/etc/httpd/conf/access.conf"; print OUT $template; close OUT; } if (/^\/etc\/smb.conf$/) { my $template=`/bin/cat /etc/smb.conf`; foreach my $psv (@perlsetvars) { $template=~s/\{\{\{\{\[(.*?)\]\}\}\}\}/$pvar{$1}/ge; } open OUT,">/etc/smb.conf"; print OUT $template; close OUT; } } foreach (@generic_conf_files) { if (-e "$_.rpmsave") { `/bin/mv $_ $_.template`; `/bin/mv $_.rpmsave $_`; } }