Me again, this time with a new challenge...
Write 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.
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:
- Code: Select all
grep -h "Alias /" /etc/httpd/conf.d /etc/httpd/conf/ -R | egrep -v "home|ScriptAlias|#|doc|error|icons|javascript"
Alias /zabbix /usr/local/share/zabbix
Ubuntu:
- Code: Select all
grep -h "Alias /" /etc/apache2/*.conf /etc/apache2/conf.d/*.conf -R | egrep -v "home|ScriptAlias|#|doc|error|icons|javascript"
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
- Code: Select all
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:
- Code: Select all
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.
Edit: Cross-posted here

