Requirement:-
A simple script to extract each virtual host defined in an apache configuration file to separate files.
Inputs:-
Apache file absolute path is the only input required for the script.
Outputs:-
Separate files starting with name virtualhost* would be generated in same folder from where script is being executed.
Script:-
#####
#!/bin/bash
# Variable Initialization
FILEPATH=$1
COUNTER=0
#####
if [ $# -eq 1 ]
then
  if [ -f $FILEPATH ]
  then
    # Read Virtualhosts file line by line
    for LINE in $(cat $FILEPATH |grep -v '#' |sed -n '/<VirtualHost/,/<\/VirtualHost/p' |sed '/<\/VirtualHost/ a --------'|tr '\n' '^' |sed 's/\^--------\^/\n/g'| tr ' ' '@' )
    do
      # Extract each virtualhost in seperate file
      echo $LINE| tr '@' ' ' |tr '^' '\n' > virtualhost_$COUNTER.txt
      # Increment Counter for using in next virtualhost out filename
      let COUNTER=$COUNTER+1
    done
  else
    echo "Input file $FILEPATH missing / does not exist"
  fi
else
  echo "Usage: $0 'INPUT VHOST FILE'"
fi
#####
Script is very basic and subject to additional error depending on environment, make sure necessary alternations are made to get it used in any environment.
References :-
https://gist.github.com/lavoiesl/2629830
References :-
https://gist.github.com/lavoiesl/2629830
No comments:
Post a Comment