Hello unix.com Community:
I need help with writing a "common" script that can get the httpd installs by name and install directory|ies and tar.gz them up by name and point that tar operation to the matching install directory.
I have 2 Distros that I am concerned with for this task: CentOS and Ubuntu.
Here's the facts that I've managed to collect so far:
CentOS stores http installs in either /etc/httpd/conf.d/.conf and/or in /etc/httpd/conf/conf files.
Ubuntu stores http installs in /etc/apache2/.conf and/or /etc/apache2/conf.d/.conf files. In the real world, they could be anywhere.
I started off with my old favorite "bash" but am having trouble with duplicates in the output.
I thought of perl, something I know nothing about but know there are 1000s of examples/demos/tuts on the net. Maybe later...
the "meat" of the code that I've hacked together and gets me most of the way there:
CentOS:
grep -h "Alias /" /etc/httpd/conf.d /etc/httpd/conf/ -R | egrep -v "home|ScriptAlias|#|doc|error|icons|javascript"
and that spits out
Alias /zabbix /usr/local/share/zabbix
Ubuntu:
grep -h "Alias /" /etc/apache2/*.conf /etc/apache2/conf.d/*.conf -R | egrep -v "home|ScriptAlias|#|doc|error|icons|javascript"
and spits out
Alias /cacti2 /var/www/cacti2
Alias /icinga "/usr/local/icinga/share/"
What I NEED is Field2 to be the "$APACHEPROG" variable (stripping the '/' in position #2) of course) and Field3 to be the "$APACHEPROGPATH" (stripping the quotes, if any?) for
tar -pczf "$APACHEPROG".tar.gz "$APACHEPROGPATH"
I have a generic bash script that can 'read' the OS (either Ubuntu or CentOS) and do stuff accordingly:
grep -iq "CentOS" /proc/version
if [ $? = '0' ];then
OS="CentOS"
do CentOS stuff
else
OS="Ubuntu"
do Ubuntu stuff
fi
It still needs work (error handling if NOT CentOS or Ubuntu) and some logging feature, but I'd like to get this step working first.
Any help would surely be appreciated.
I will of course post the solution on Bourne to raise $shell with credit to the contributor.
Thank you all for your time.