サーバー完成図書を自動で作りたいんだ 第9話 Apache,PHPなどのパッケージバージョン

#!/bin/sh
IFS=$'\n'
SCRIPT_PATH=`echo $(cd $(dirname $0);pwd)`
RPMQA=${SCRIPT_PATH}/rpmqa.tmp

rpm -qa --queryformat="%{NAME} %{VERSION} %{RELEASE} %{ARCH}\n" > ${RPMQA}

grep_param () {
  KEY=$1
  echo $1 | sed -e "s/^ \+//g" | sed -e "s/ \+$//g" | sed  -e "s/ \+/ /g" | sed  -e "s/ /(([0-9]+)?( |-)[0-9]+)\|^/g" | sed  -e "s/^/^/g" | sed  -e "s/$/(([0-9]+)?( |-)[0-9]+)/g"
}

grep_rpm_qa (){
  GREP_PARAM=`grep_param $1`
  for APP in `cat ${RPMQA} | egrep ${GREP_PARAM}`
  do
    echo "${APP}"
  done
}

textile_rpm_qa(){
  SERVICE=$2
  for APP in `grep_rpm_qa $1`
  do
    NAME=`echo "${APP}" | cut -f1 -d" "`
    VERSION=`echo "${APP}" | cut -f2 -d" "`
    echo "|${SERVICE}|${NAME}|${VERSION}|"
  done
}

echo "|_. サービス|_. パッケージ名|_. バージョン|"
textile_rpm_qa "httpd nginx" "Webサーバー"
textile_rpm_qa "mysql-server postgresql mysql-community-server" "データベース"
textile_rpm_qa "java" "Java"
textile_rpm_qa "perl" "Perl"
textile_rpm_qa "php" "PHP"
textile_rpm_qa "sendmail postfix exim" "メールサーバー"
textile_rpm_qa "vsftpd proftpd" "FTPサーバー"

SPLX_PATH=`ps aux | grep splxhttpd | grep -v grep | head -n1 | sed -e"s/[ \t]\+/ /g" | awk -F" " '{ print $NF }' | sed -e "s/SPLX\.httpd.*//g"`
if [ -n "${SPLX_PATH}" ] && [ -f "${SPLX_PATH}/Product.ini" ]; then
  SPLX_VERSION=`${SPLX_PATH}/Product.ini | grep ProductVersion | cut -f2 -d=`
  if [ -n "${SPLX_VERSION}" ]; then
    echo "|ウィルス対策|TrendMicro ServerProtect|${SPLX_VERSION}|"
  fi
fi 

※ 2015年5月18日 一部のパッケージが取れないためスクリプトを調整