天天看点

shell程序安装卸载脚本

好久没写shell基本语法都忘了很多。

今天写了个自动判断程序是否安装,如果安装的话就先卸载,然后保存配置文件,在安装。

如果没安装的话就执行全新安装。

功能很简单,脚本也很简单。

#!/bin/bash

BASEP=$(cd `dirname $0`; pwd)

isCodeMeterPass(){
        count=`cmu -lx | grep -A 2 "* PC=9008" | grep "License Quantity" | awk -F ',' '{print $1}' |awk '{print $3}'`
        datelic=`cmu -lx | grep -A 2 "* PC=9008" | grep  'Expiration Date:' | awk '{print $3" "$4}'`
        dateutc=`timedatectl | grep 'Universal time:' | awk '{print $4" "$5}'`
	if [ -z "$count" ] && [ -z "$datelic" ];then
		#不存在加密狗
                return 1
        fi

        datelic=`date -d "$datelic" +%s`
        dateutc=`date -d "$dateutc" +%s`
        if [ "$datelic" -lt "$dateutc" -o $count -lt 1 ];then
		#过期或次数不足
                return 1
        else
		#正常
                return 0
        fi
}
uninstall(){
        #删除AxP
        echo "正在删除""`rpm -qa|grep AxP`"
        rpm -e `rpm -qa|grep AxP`
        echo "删除Axp完成"
        if [ -f /etc/wibu/CodeMeter/Server.ini ];then
            echo "正在备份配置文件"
            cp -rf /etc/wibu/CodeMeter/Server.ini /home/Server.ini
        else
            echo "目录下没有Sever.ini文件"
        fi
        echo "正在删除""`rpm -qa|grep CodeMeter`"
        rpm -e `rpm -qa|grep CodeMeter`
        echo "删除codemeter驱动完成"
        rm -rf /etc/wibu/
        echo "删除codemeter的目录/etc/wibu"
        rm -rf /usr/share/CodeMeter
        echo "删除目录/usr/share/CodeMeter"
}

number=`rpm -qa|grep CodeMeter|wc -l`

if [ $number -eq 1 ];then
    echo "已安装了加密狗驱动,正在卸载重装"
    uninstall
    rpm -ivh $BASEP/package/*.rpm --nodeps --force
    if [ -f /home/Server.ini ];then
        service codemeter stop
        cp -rf /home/Server.ini /etc/wibu/CodeMeter/Server.ini
        service codemeter start
    fi
    else
	echo "未安装加密狗驱动,正在全新安装"
        rpm -ivh $BASEP/package/*.rpm --nodeps --force
fi
    


isCodeMeterPass
ispass=$?
if [ "$ispass" == 1 ];then
	#监控WEB服务时,先执行此处,如果过期或加密狗不存在,监控程序将杀掉所有WEB服务
	exit 10
else
	isrun=`ps -ef | grep -v grep | grep /usr/sbin/CodeMeterLin`
	if [ -z "$isrun" ];then
		/etc/init.d/codemeter start
	fi
fi
           

继续阅读