• Linux6.3升级zlib


    #!/bin/bash
    # 脚本适用于Linux6.3升级zlib版本, rpm包应与脚本同级
    
    SCRIPT_DIR=`readlink -f $0|xargs dirname`
    # 目标版本
    REQ_USER="root"
    REQ_PACKAGE="zlib-1.2.3-29.el6.x86_64.rpm"
    REQ_LINUX_V="6.3"
    REQ_ZLIB_V="zlib-1.2.3-27.el6.x86_64"
    TARGET_ZLIB_V="zlib-1.2.3-29.el6.x86_64"
    
    FLAG_USER=0
    FLAG_PACKAGE=0
    FLAG_LINUX_V=0
    FLAG_ZLIB_V=0
    
    # 环境获取
    CUR_USER=`whoami`
    # CUR_LINUX_V=`cat /etc/redhat-release|awk '{print $7}'`
    CUR_LINUX_V=`cat /etc/redhat-release|awk '{print $3}'`
    CUR_ZLIB_V=`rpm -qa |grep zlib`
    
    
    # 前置条件检查
    function checkENV(){
    	## 判断用户
    	## 判断rpm包是否存在
    	## 判断系统版本
    	## 判断系统已经安装的zlib包的版本
    	echo "==CHECK=="
    	if [[ $REQ_USER==$CUR_USER ]];then
    		FLAG_PACKAGE=1
    		echo "[OK] user is $CUR_USER"
    	else
    		echo "[ERROR] user is $CUR_USER, please use $REQ_USER"
    	fi
    	if [ -e "$REQ_PACKAGE" ] ;then
    		FLAG_PACKAGE=1
    		echo "[OK] $REQ_PACKAGE package exsited"
    	else
    		echo "[ERROR] Not have package $REQ_PACKAGE"
    	fi
    
    	if [[ $CUR_LINUX_V==$REQ_LINUX_V ]];then
    		FLAG_LINUX_V=1
    		echo "[OK] Linux version is $CUR_LINUX_V"
    	else
    		echo "[ERROR] Linux version is $CUR_LINUX_V,it's scripts only used for $REQ_LINUX_V"
    	fi
    
    	if [[ $CUR_ZLIB_V==$REQ_ZLIB_V ]];then
    		FLAG_ZLIB_V=1
    		echo "[OK] zlib version is $CUR_ZLIB_V"
    	else
    		echo "[ERROR] $CUR_ZLIB_V inappropriate"
    	fi
    }
    
    # 升级过程
    function execUpgrade(){
    	## 记录脚本目录
    	## cd到1ib64
    	## 备份
    	## 改软链接
    	## 删除已有版本
    	## 安装新版本
    	## 确认版本
    	## 改回软链接
    	echo "==Upgrade=="
    	cd /lib64
    	cp libz.so.1.2.3 libz.so.1.2.3.bak
    	ln -snf libz.so.1.2.3.bak libz.so.1
    	rpm -e --nodeps zlib
    	# rpm -ivh /root/test/zlib-1.2.3-29.el6.x86_64.rpm
    	rpm -ivh "$SCRPT_DIR/zlib-1.2.3-29.el6.x86_64.rpm"
    	
    	if [[ -e "libz.so.1.2.3" ]]; then
    		ln -snf libz.so.1.2.3 libz.so.1
    	fi
    
    	if [ `rpm -qa |grep zlib` == $TARGET_ZLIB_V ];then
    		echo "==Upgrade Success=="
    	else
    		echo "[ERROR] Upgrade faild"
    	fi
    }
    
    # 调用
    checkENV
    
    if [[ $FLAG_USER && $FLAG_PACKAGE && $FLAG_LINUX_V && $FLAG_ZLIB_V ]] ;then
    	execUpgrade
    fi
    
    
  • 相关阅读:
    [SQL Server] 数据库日志文件自动增长导致连接超时的分析
    Visual Studio 2003/Visual Studio 2005常用快捷键(快捷方式)
    設置RichTextBox控件中選中的部分的文字突顯
    電功率單位
    一名25岁的董事长给大学生的18条忠告
    計算機端口
    學習使用Directionary與Hastable
    VS .NET如何切換環境
    VS .NET(C#)如何動態創建控件
    VS .NET(C#)測試程序記錄時間方法
  • 原文地址:https://www.cnblogs.com/jrri/p/15233100.html
Copyright © 2020-2023  润新知