cat server_version.sh
#!/bin/bash
##输出系统某几个服务状态和某几个版本版本
##变量
system='systemctl status'
system_name="neutron-linuxbridge-agent.service openstack-nova-api.service openstack-glance-api.service openstack-nova-compute.service mariadb.service rabbitmq-server.service etcd.service"
##for循环和if判断-服务状态并输入颜色
>status.log
for i in $system_name
do
name=`$system $i | awk 'NR==1 {print $2}'`
status=`$system $i | awk '/Active/ {print $3}' | awk -F '(' '{print $2}' | awk -F ')' '{print $1}'`
if [ $status == running ]
then
echo -e "\033[32m$name-$status\033[0m" >> status.log
else
echo -e "\033[31m$name-failed\033[0m" >> status.log
fi
done
#awk 截取行变量
neutron1=`cat status.log | awk 'NR==1'`
nova1=`cat status.log | awk 'NR==2'`
glance1=`cat status.log | awk 'NR==3'`
mariadb1=`cat status.log | awk 'NR==4'`
rabbitmq1=`cat status.log | awk 'NR==5'`
etcd1=`cat status.log | awk 'NR==6'`
#date输出时间
echo -e "\033[32m+--------------------------------------------------------+\033[0m"
echo -e "| \t \033[45;37m `date` \033[0m \t |"
echo -e "\033[32m+--------------------------------------------------------+\033[0m\n"
#输出服务状态
echo -e "\033[32m+--------------------------------------------------------+\033[0m"
echo -e "| \t \t \033[45;37m server_status \033[0m \t \t \t |"
echo -e "\033[32m+--------------------------------------------------------+\033[0m"
echo "$neutron1 $nova1 $glance1 $mariadb1 $rabbitmq1 $etcd1" | awk '{printf "|%-65s|\n|%-65s|\n|%-65s|\n|%-65s|\n|%-65s|\n|%-65s|\n",$1,$2,$3,$4,$5,$6}'
echo -e "\033[32m+--------------------------------------------------------+\033[0m\n"
#all=($neutron1 $nova1 $glance1 $mariadb1 $rabbitmq1 $etcd1)
#for i in ${all[@]}
#do
#echo "$i"
#if [ $i == running ]
#then
#echo -e "\033[32m$i\033[0m" #| awk '{printf "|%-7s|%-10s|\n",$1}'
#else
#echo -e "\033[31m$i\033[0m"
#fi
#done
#echo "+-----------------------------------------+"
neutron=`rpm -qa openstack-neutron-linuxbridge`
nova=`rpm -qa openstack-nova-api`
glance=`rpm -qa openstack-glance`
compute=`rpm -qa openstack-nova-compute`
mariadb=`rpm -qa mariadb`
rabbitmq=`rpm -qa rabbitmq-server`
etcd=`rpm -qa etcd`
#输出服务版本
echo -e "\033[32m+--------------------------------------------------------+\033[0m"
echo -e "| \t \t \033[45;37m server_version \033[0m \t \t \t |"
echo -e "\033[32m+--------------------------------------------------------+\033[0m"
echo "$neutron $nova $glance $compute $mariadb $rabbitmq $etcd" | awk '{printf "|%-56s|\n|%-56s|\n|%-56s|\n|%-56s|\n|%-56s|\n|%-56s|\n|%-56s|\n",$1,$2,$3,$4,$5,$6,$7}'
echo -e "\033[32m+--------------------------------------------------------+\033[0m"
#效果