From 0864ae482d003c316f7f03839e49d54133981698 Mon Sep 17 00:00:00 2001 From: xuezhixin Date: Fri, 10 Nov 2023 17:42:55 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A7=BB=E9=99=A4ABI=E6=A3=80=E6=B5=8B?= =?UTF-8?q?=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sysmig_agent/Abisystmcompchk.sh | 458 -------------------------------- sysmig_agent/Abitranrept.sh | 153 ----------- 2 files changed, 611 deletions(-) delete mode 100755 sysmig_agent/Abisystmcompchk.sh delete mode 100755 sysmig_agent/Abitranrept.sh diff --git a/sysmig_agent/Abisystmcompchk.sh b/sysmig_agent/Abisystmcompchk.sh deleted file mode 100755 index 15938fc..0000000 --- a/sysmig_agent/Abisystmcompchk.sh +++ /dev/null @@ -1,458 +0,0 @@ -#!/bin/bash -########################变量定义################################# - -LOCAL_DIR=/var/tmp/uos-migration/data - -#原始数据目录 -UOS_DIR=$LOCAL_DIR/uos/rpms -DIFF_DIR=$LOCAL_DIR/all-diff - -#输出结果目录 -EXP_DIR=$LOCAL_DIR/exp-rst - -#系统基本信息文件 -SYSTEM_INFO=systeminfo.txt - -#软件包对比文件 -PKG_COMP_LIST_01=pkginfo_1.txt -PKG_COMP_LIST_02=pkginfo_2.txt -PKG_COMP_LIST_04=pkginfo_4.txt - -#不兼容兼容定义 -START_CHANGE="================ changes of START===============" -ENDS_CHANGE="================ end of changes of END===============" - -#兼容、不兼容检查结果输出列表 -ABI_COMPAT_PKG=abi-compat-pkg.txt -ABI_INCOMPAT_PKG=abi-incompat-pkg.txt - -#生成总包文件 -UOS_PKG_RPMS_LIST=uos-pkg-rpms-list.txt -OTH_PKG_RPMS_LIST=oth-pkg-rpms-list.txt - -ABI_DIFF_PKG_ERR=abi-diff-pkg-err.txt -SUFFIX=.oked - -CACHE_SPACE="/var/tmp/uos-migration/UOS_analysis_report/rpmva-before.txt" - -#1. 创建目录 -create_file_path() -{ - #接收yum仓库下载的rpm目录 - if [ ! -d "$UOS_DIR" ] - then - mkdir -p $UOS_DIR - echo "mkdir -p $UOS_DIR success ... " - fi - - #数据导出目录 - if [ ! -d "$EXP_DIR" ] - then - mkdir -p $EXP_DIR - echo "mkdir -p $EXP_DIR success ... " - fi - - #abidiff工具检测结果目录 - if [ ! -d "$DIFF_DIR" ] - then - mkdir -p $DIFF_DIR - echo "mkdir -p $DIFF_DIR success ... " - fi -} - -#2. 获取rpm包列表,并解压rpm包 -get_rpm_list() -{ - #清理历史数据 - if [ -f "$EXP_DIR/$UOS_PKG_RPMS_LIST" ] - then - rm -f $EXP_DIR/$UOS_PKG_RPMS_LIST - fi - - if [ -f "$EXP_DIR/$OTH_PKG_RPMS_LIST" ] - then - rm -f $EXP_DIR/$OTH_PKG_RPMS_LIST - fi - - #获取当前系统包列表 - for line in `rpm -qa | sort` - do - var=${line%-*} - echo ${var%-*} >> $EXP_DIR/$OTH_PKG_RPMS_LIST - done - - #源仓库批量下载当前系统包列表 - for downpkg in `cat $EXP_DIR/$OTH_PKG_RPMS_LIST` - do - string=$downpkg - downpkg_list="${downpkg_list} ${string}" - done - - yumdownloader --destdir=$UOS_DIR $downpkg_list --skip-broken - - #获取迁移系统包列表 - cd $UOS_DIR && for line1 in `ls *.rpm`;do var1=${line1%-*} echo ${var1%-*} >> $EXP_DIR/$UOS_PKG_RPMS_LIST ;done - - #当前系统与迁移系统共有的包列表 - grep -f $EXP_DIR/$UOS_PKG_RPMS_LIST $EXP_DIR/$OTH_PKG_RPMS_LIST > $EXP_DIR/$PKG_COMP_LIST_04 - - #当前系统有,迁移系统无的包列表 - grep -wvf $EXP_DIR/$UOS_PKG_RPMS_LIST $EXP_DIR/$OTH_PKG_RPMS_LIST > $EXP_DIR/$PKG_COMP_LIST_02 - - #根据包名找到对应的.rpm包,通过判断:(包名长度+1)个字符为数字判断是否为要解压的包 - for data in `cat $EXP_DIR/$PKG_COMP_LIST_04` - do - data_len=`expr length "$data"` - len_char=`expr $data_len + 1` - - cmd_rst=`ls $data*` - #针对同一包名多个查找结果处理 - for pkg_name in $cmd_rst - do - char=${pkg_name:$len_char:1} - echo "$char" | [ -n "`sed -n '/^[0-9][0-9]*$/p'`" ] && rpm2cpio $pkg_name | cpio -idmv - if [ $? == 0 ];then - - #条件不完整,可根据情况添加检测的目录 - rpm -qpl $pkg_name | grep -v ".build-id\|\/etc\/\|\/share\/" > $EXP_DIR/rpm-pkg-info.txt - deal_file $EXP_DIR/rpm-pkg-info.txt $data - mv $UOS_DIR/$pkg_name $UOS_DIR/$pkg_name$SUFFIX - fi - done - done -} - - -#根据解压列表,过滤出兼容性检测的文件 -deal_file() -{ - #清理数据 - rm -f $EXP_DIR/$2.diff - - for line in `cat $1` - do - rst=`file -i $line` - if [[ ${rst#*charset=} == "binary" ]];then - - #获取要对比的文件名 - uos_bin=${line##*\/} - - #获取要对比的文件名路径 - uos_path_1=${line#*\/} - uos_path=${uos_path_1%%\/*} - - #获取本系统文件名 - rst_find=`find /$uos_path -name $uos_bin` - if [[ ${rst_find} != 0 ]];then - - #做对比到处结果 - abidiff .$line $rst_find > $EXP_DIR/abidiff_comp_rst.txt - #abidiff工具检测结果不存在报错 - if [[ ! -f "$EXP_DIR/abidiff_comp_rst.txt" ]];then - echo "abidiff $line $rst_find err!!!!" - continue - else - if [[ -s $EXP_DIR/abidiff_comp_rst.txt ]];then - - #存在不为空,按照abipkgdiff工具结果格式生成报告 - echo ${START_CHANGE//START/\'$uos_bin\'} >> $DIFF_DIR/$2.diff - cat $EXP_DIR/abidiff_comp_rst.txt >> $DIFF_DIR/$2.diff - echo ${ENDS_CHANGE//END/\'$uos_bin\'} >> $DIFF_DIR/$2.diff - echo " " >> $DIFF_DIR/$2.diff - else - #存在为空,直接导入结果列表 - cat $EXP_DIR/abidiff_comp_rst.txt >> $DIFF_DIR/$2.diff - fi - fi - fi - fi - done -} - -#3. abi检查结果,包括兼容、非兼容的二进制包 -# 逐个处理 .diff 结果文件 -get_abi_comp_rest() -{ - echo "" - echo "------------------------- 获取abi兼容、非兼容包列表开始 -------------------------" - TOTAL_NUM=0 - TOTAL_COMP_NUM=0 - FILE_SO=".so" - FILE_EXEC=".exec" - FILE_MOD=".mod" - DATA_LINE_1="================ changes" - DATA_LINE_2="Functions changes summary: " - DATA_LINE_3="Variables changes summary: " - DATA_LINE_4="Function symbols changes summary: " - DATA_LINE_5="Variable symbols changes summary: " - ABI_DIFF_PKG_ABNO=abi-diff-pkg-abno.txt - ABI_INCOMPAT_PKG_ERR=abi-incompat-pkg-err.txt - - ABI_COMPAT_PKG_LINE="包名" - ABI_INCOMPAT_PKG_LINE1="abi不兼容的包有INCOMP_PKG_NUM|" - ABI_INCOMPAT_PKG_LINE2="包名|不兼容类型|不兼容来源|说明" - - cd $DIFF_DIR - - #初始化文件头信息 - echo $ABI_COMPAT_PKG_LINE >> $EXP_DIR/$ABI_COMPAT_PKG - echo $ABI_INCOMPAT_PKG_LINE1 >> $EXP_DIR/$ABI_INCOMPAT_PKG - echo $ABI_INCOMPAT_PKG_LINE2 >> $EXP_DIR/$ABI_INCOMPAT_PKG - - for abi_diff_file in `ls *.diff` - do - TOTAL_NUM=`expr $TOTAL_NUM + 1` - NAME=${abi_diff_file%.*} - FILE_SIZE=`ls -l $abi_diff_file | awk '{print $5}'` - if [ $FILE_SIZE -eq 0 ];then - #abi兼容性对比结果文件大小为 0 ,该软件包兼容 - echo $NAME >> $EXP_DIR/$ABI_COMPAT_PKG - TOTAL_COMP_NUM=`expr $TOTAL_COMP_NUM + 1` - else - #将差错报告按以下条件重定向到文件,并分析 - grep "^================ changes" --after-context=4 $abi_diff_file > $abi_diff_file.tmp - if [ $? -ne 0 ];then - grep_rest_tmp="$abi_diff_file|================ changes|grep non-existent!" - echo $grep_rest_tmp >> $EXP_DIR/$ABI_DIFF_PKG_ABNO - else - sed -i '/^--$/d' $abi_diff_file.tmp - fi - NUM1=0 - #兼容性开关,0-兼容;1-不兼容 - COMP_FLAG=0 - while read line - do - if [[ $line == *$DATA_LINE_1* ]];then - NUM2=$(( $NUM1 % 5 )) - if [ $NUM2 = 0 ];then - str1=${line%\'*} - data_line="${str1#*\'}" - if [[ $data_line =~ $FILE_SO ]] - then - COMP_TYPE="库差异" - elif [[ $data_line =~ $FILE_EXEC ]] - then - COMP_TYPE="可执行文件" - elif [[ $data_line =~ $FILE_MOD ]] - then - COMP_TYPE="视频文件" - else - COMP_TYPE="二进制差异" - fi - else - #该情况不规范,需要查看 - echo "$NAME|$COMP_TYPE|$data_line|$line" >> $EXP_DIR/$ABI_DIFF_PKG_ERR - fi - elif [[ $line == *$DATA_LINE_2* ]];then - str2="${line#*: }" - removed_num=${str2% Removed*} - change_line=${str2% Changed*} - change_num=${tmp#*, } - added_line=${str2% Added*} - added_num=${tmp1##*,} - if [[ $removed_num -eq 0 ]] && [[ $change_num -eq 0 ]] && [[ $added_num -eq 0 ]] - then - abi_var_comp_2="${abi_diff_file%.*}|$line|兼容" - else - abi_var_incomp_2="$NAME|$COMP_TYPE|$data_line|$line" - echo $abi_var_incomp_2 >> $EXP_DIR/$ABI_INCOMPAT_PKG - #此时abi编译以来库文件或者二进制包不兼容,那么该rpm包不兼容 - COMP_FLAG=1 - fi - elif [[ $line == *$DATA_LINE_3* ]];then - str3="${line#*: }" - removed_num=${str3% Removed*} - change_line=${str3% Changed*} - change_num=${tmp#*, } - added_line=${str3% Added*} - added_num=${tmp1##*,} - if [[ $removed_num -eq 0 ]] && [[ $change_num -eq 0 ]] && [[ $added_num -eq 0 ]] - then - #abi检查结果中,rpm包以来的库文件或者二进制文件兼容 - abi_var_comp_3="${abi_diff_file%.*}|$line|兼容" - else - abi_var_incomp_3="$NAME|$COMP_TYPE|$data_line|$line|" - echo $abi_var_incomp_3 >> $EXP_DIR/$ABI_INCOMPAT_PKG - #此时abi编译以来库文件或者二进制包不兼容,那么该rpm包不兼容 - COMP_FLAG=1 - fi - elif [[ $line == *$DATA_LINE_4* ]];then - str4=${line#*: } - removed_num=${str4% Removed*} - if [ $removed_num -ne 0 ] - then - #abi检查结果中,rpm包依赖的库文件或者二进制文件不兼容 - abi_var_incomp_4="$NAME|$COMP_TYPE|$data_line|$str4" - echo $abi_var_incomp_4 >> $EXP_DIR/$ABI_INCOMPAT_PKG - COMP_FLAG=1 - else - #此时abi编译依赖库文件或者二进制包兼容 - abi_var_comp_4="${abi_diff_file%.*}|$line|兼容" - fi - elif [[ $line == *$DATA_LINE_5* ]];then - str5=${line#*: } - removed_num=${str5% Removed*} - if [ $removed_num -ne 0 ] - then - #abi检查结果中,rpm包依赖的库文件或者二进制文件不兼容 - abi_var_incomp_5="$NAME|$COMP_TYPE|$data_line|$str5" - echo $abi_var_incomp_5 >> $EXP_DIR/$ABI_INCOMPAT_PKG - COMP_FLAG=1 - else - #此时abi编译依赖库文件或者二进制包兼容 - abi_var_comp_5="${abi_diff_file%.*}|$line|兼容" - fi - else - ohter_err_info="$NAME|$COMP_TYPE|$data_line|$line|" - echo $other_err_info >> $EXP_DIR/$ABI_INCOMPAT_PKG_ERR - fi - NUM1=`expr $NUM1 + 1` - done < ./$abi_diff_file.tmp - #根据兼容性开发COMP_FLAG判断该rpm包是否兼容 - if [ $COMP_FLAG -eq 0 ] - then - echo $NAME >> $EXP_DIR/$ABI_COMPAT_PKG - else - NUM10=`expr $NUM1 + 1` - fi - - fi - done - rm -f *.diff.tmp - - ABI_INCOMP_NUM_TMP=`cat $EXP_DIR/$ABI_INCOMPAT_PKG | awk -F "|" '{print $1}' | sort | uniq | wc -l` - ABI_INCOMP_NUM=`expr $ABI_INCOMP_NUM_TMP - 2` - sed -i 's/INCOMP_PKG_NUM/'$ABI_INCOMP_NUM'/g' $EXP_DIR/$ABI_INCOMPAT_PKG - echo "兼容包列表:$EXP_DIR/$ABI_COMPAT_PKG" - echo "非兼容包列表:$EXP_DIR/$ABI_INCOMPAT_PKG" - echo "------------------------- 获取abi兼容、非兼容包列表结束 -------------------------" -} - -#4. 获取系统基本信息 -get_system_info() -{ - #数据清理 - rm -f $EXP_DIR/$SYSTEM_INFO - - #SYSTEM_INFO_1_LINE1="|当前系统|迁移系统" - SYSTEM_INFO_1_LINE1="|当前系统" - #SYSTEM_INFO_2_LINE2="系统版本|CUR_VERSION|TRA_VERSION" - SYSTEM_INFO_2_LINE2="系统版本|CUR_VERSION" - #SYSTEM_INFO_3_LINE3="内核版本|CUR_KERNEL_VERSION|TRA_KERNEL_VERSION" - SYSTEM_INFO_3_LINE3="内核版本|CUR_KERNEL_VERSION" - - SYSTEM_INFO_5_LINE5="/var/cache可用空间|CUR_USE_SPACE" - SYSTEM_INFO_6_LINE6="架构|CUR_ARCH" - - #SYSTEM_INFO_8_LINE8="软件包|被替换的软件包|安装的软件包" - SYSTEM_INFO_8_LINE8="软件包|被替换的软件包" - #SYSTEM_INFO_9_LINE9="软件包数量|REPLACE_PKG_NUM|INSTALL_PKG_NUM" - SYSTEM_INFO_9_LINE9="软件包数量|REPLACE_PKG_NUM" - - SYSTEM_INFO_11_LINE11="ABI" - SYSTEM_INFO_12_LINE12="兼容数量|COMP_NUM" - SYSTEM_INFO_13_LINE13="不兼容数量|INCOMP_NUM" - SYSTEM_INFO_14_LINE14="总数|SUM_NUM" - - echo $SYSTEM_INFO_1_LINE1 >> $EXP_DIR/$SYSTEM_INFO - - #获取系统版本 - cur_sysinfo_1=`cat /etc/os-release | grep PRETTY_NAME` - cur_sysinfo_2=${cur_sysinfo_1#*=} - cur_sysinfo_len_1=`echo ${cur_sysinfo_1#*=} | wc -L` - cur_sysinfo_len=`expr $cur_sysinfo_len_1 - 2` - - cur_sysinfo=${cur_sysinfo_2:1:$cur_sysinfo_len} - - system_info_2_line2=${SYSTEM_INFO_2_LINE2//CUR_VERSION/$cur_sysinfo} - echo $system_info_2_line2 >> $EXP_DIR/$SYSTEM_INFO - - #获取内核版本 - cur_kernel_info=`uname -r` - - system_info_3_line3=${SYSTEM_INFO_3_LINE3//CUR_KERNEL_VERSION/$cur_kernel_info} - echo $system_info_3_line3 >> $EXP_DIR/$SYSTEM_INFO - echo " " >> $EXP_DIR/$SYSTEM_INFO - - #cache空间及架构 - cur_cache_space_tmp=`head -1 $CACHE_SPACE` - cur_cache_space=${cur_cache_space_tmp#*为} - cur_system_arch=`uname -m` - - system_info_5_line5=${SYSTEM_INFO_5_LINE5//CUR_USE_SPACE/$cur_cache_space} - echo $system_info_5_line5 >> $EXP_DIR/$SYSTEM_INFO - - system_info_6_line6=${SYSTEM_INFO_6_LINE6//CUR_ARCH/$cur_system_arch} - echo $system_info_6_line6 >> $EXP_DIR/$SYSTEM_INFO - echo " " >> $EXP_DIR/$SYSTEM_INFO - - echo $SYSTEM_INFO_8_LINE8 >> $EXP_DIR/$SYSTEM_INFO - - abi_comp_pkg_num_tmp=`cat $EXP_DIR/$ABI_COMPAT_PKG | wc -l` - cur_pkg_num=`expr $abi_comp_pkg_num_tmp - 1` - - system_info_9_line9=${SYSTEM_INFO_9_LINE9//REPLACE_PKG_NUM/$cur_pkg_num} - echo $system_info_9_line9 >> $EXP_DIR/$SYSTEM_INFO - echo " " >> $EXP_DIR/$SYSTEM_INFO - - echo $SYSTEM_INFO_11_LINE11 >> $EXP_DIR/$SYSTEM_INFO - system_info_12_line12=${SYSTEM_INFO_12_LINE12//COMP_NUM/$cur_pkg_num} - echo $system_info_12_line12 >> $EXP_DIR/$SYSTEM_INFO - - abi_incomp_pkg_num_tmp=`cat $EXP_DIR/$ABI_INCOMPAT_PKG | awk -F "|" '{print $1}'| sort | uniq |wc -l` - abi_incomp_pkg_num=`expr $abi_incomp_pkg_num_tmp - 2` - system_info_13_line13=${SYSTEM_INFO_13_LINE13//INCOMP_NUM/$abi_incomp_pkg_num} - echo $system_info_13_line13 >> $EXP_DIR/$SYSTEM_INFO - - abi_pkg_num=`expr $abi_comp_pkg_num + $abi_incomp_pkg_num` - system_info_14_line14=${SYSTEM_INFO_14_LINE14//SUM_NUM/$abi_pkg_num} - echo $system_info_14_line14 >> $EXP_DIR/$SYSTEM_INFO - - #echo "====================End enter get_system_info==============" -} - -#5. 软件包对比 -pkg_comp_rst() -{ - #软件包对比文件头定义 - PKGINFO_1_LINE1="待替换/安装的软件包共SUM1个,新安装的软件包共SUM2个" - PKGINFO_2_LINE2="当前系统持有(不替换)|迁移系统软件包总表" - PKGINFO_3_LINE3="OTH_VERSION|UOS_VERSION" - - #echo "==============Start enter pkg_comp_rst=========" - #清理数据 - rm -f $EXP_DIR/$PKG_COMP_LIST_01 - - pkg_sum_num=`cat $EXP_DIR/$UOS_PKG_RPMS_LIST | wc -l` - pkg_num_inst_tmp=`cat $EXP_DIR/$ABI_COMPAT_PKG | wc -l` - pkg_num_inst=`expr $pkg_num_inst_tmp - 1` - - - pkginfo_1_line1_tmp=${PKGINFO_1_LINE1//SUM1/$pkg_sum_num} - pkginfo_1_line1=${pkginfo_1_line1_tmp//SUM2/$pkg_num_inst} - - echo $pkginfo_1_line1 >> $EXP_DIR/$PKG_COMP_LIST_01 - - echo $PKGINFO_2_LINE2 >> $EXP_DIR/$PKG_COMP_LIST_01 - - #获取系统版本 - cur_sysinfo_1=`cat /etc/os-release | grep PRETTY_NAME` - cur_sysinfo_2=${cur_sysinfo_1#*=} - cur_sysinfo_len_1=`echo ${cur_sysinfo_1#*=} | wc -L` - cur_sysinfo_len=`expr $cur_sysinfo_len_1 - 2` - - cur_sysinfo=${cur_sysinfo_2:1:$cur_sysinfo_len} - - trans_sysinfo_1="UOS Server Enterprise " - - pkginfo_3_line3_tmp=${PKGINFO_3_LINE3//OTH_VERSION/$cur_sysinfo} - pkginfo_3_line3=${pkginfo_3_line3_tmp//UOS_VERSION/$trans_sysinfo_1} - echo $pkginfo_3_line3 >> $EXP_DIR/$PKG_COMP_LIST_01 - -} - -create_file_path -get_rpm_list -get_abi_comp_rest -get_system_info -pkg_comp_rst \ No newline at end of file diff --git a/sysmig_agent/Abitranrept.sh b/sysmig_agent/Abitranrept.sh deleted file mode 100755 index 891e6f2..0000000 --- a/sysmig_agent/Abitranrept.sh +++ /dev/null @@ -1,153 +0,0 @@ -#!/bin/bash - -#系统迁移后调用该脚本获取迁移后系统信息,为迁移后生成报告准备 - -LOCAL_DIR=/var/tmp/uos-migration/data -#LOCAL_DIR=/var/data - -#输出结果目录 -EXP_DIR=$LOCAL_DIR/exp-rst - -#系统基本信息文件 -SYSTEM_INFO=systeminfo.txt -TRAND_END_SYSINFO=trans-end-sysinfo.txt - -#软件包对比文件 -PKG_COMP_LIST_01=pkginfo_1.txt -PKG_COMP_LIST_01_TRANS=pkginfo_1_trans.txt -PKG_COMP_LIST_03=pkginfo_3.txt - -#1. 获取迁移后系统基本信息 -get_system_info() -{ - #数据清理 - rm -f $EXP_DIR/$TRAND_END_SYSINFO - - line_num=1 - while read line - do - if [ $line_num -eq 1 ];then - SYSTEM_INFO_1_LINE1="$line|迁移系统" - echo $SYSTEM_INFO_1_LINE1 >> $EXP_DIR/$TRAND_END_SYSINFO - fi - - if [ $line_num -eq 2 ];then - #获取系统版本 - cur_sysinfo_1=`cat /etc/os-release | grep PRETTY_NAME` - cur_sysinfo_2=${cur_sysinfo_1#*=} - cur_sysinfo_len_1=`echo ${cur_sysinfo_1#*=} | wc -L` - cur_sysinfo_len=`expr $cur_sysinfo_len_1 - 2` - - cur_sysinfo=${cur_sysinfo_2:1:$cur_sysinfo_len} - - SYSTEM_INFO_2_LINE2="$line|$cur_sysinfo" - echo $SYSTEM_INFO_2_LINE2 >> $EXP_DIR/$TRAND_END_SYSINFO - fi - - if [ $line_num -eq 3 ];then - #当前系统版本 - cur_kernel_info=`uname -r` - SYSTEM_INFO_3_LINE3="$line|$cur_kernel_info" - echo $SYSTEM_INFO_3_LINE3 >> $EXP_DIR/$TRAND_END_SYSINFO - fi - - if [ $line_num -eq 4 ];then - echo "" >> $EXP_DIR/$TRAND_END_SYSINFO - fi - - if [ $line_num -eq 5 ];then - echo $line >> $EXP_DIR/$TRAND_END_SYSINFO - fi - - if [ $line_num -eq 6 ];then - echo $line >> $EXP_DIR/$TRAND_END_SYSINFO - fi - - if [ $line_num -eq 7 ];then - echo "" >> $EXP_DIR/$TRAND_END_SYSINFO - fi - - if [ $line_num -eq 8 ];then - SYSTEM_INFO_8_LINE8="$line|安装的软件包" - echo $SYSTEM_INFO_8_LINE8 >> $EXP_DIR/$TRAND_END_SYSINFO - fi - - if [ $line_num -eq 9 ];then - install_num=`rpm -qa | grep uelc20 | wc -l` - SYSTEM_INFO_9_LINE9="$line|$install_num" - echo $SYSTEM_INFO_9_LINE9 >> $EXP_DIR/$TRAND_END_SYSINFO - fi - - if [ $line_num -eq 10 ];then - echo "" >> $EXP_DIR/$TRAND_END_SYSINFO - fi - - if [ $line_num -eq 11 ];then - echo $line >> $EXP_DIR/$TRAND_END_SYSINFO - fi - - if [ $line_num -eq 12 ];then - echo $line >> $EXP_DIR/$TRAND_END_SYSINFO - fi - - if [ $line_num -eq 13 ];then - echo $line >> $EXP_DIR/$TRAND_END_SYSINFO - fi - - if [ $line_num -eq 14 ];then - echo $line >> $EXP_DIR/$TRAND_END_SYSINFO - fi - - line_num=`expr $line_num + 1` - - done < $EXP_DIR/$SYSTEM_INFO -} - -#5. 软件包对比 -pkg_comp_rst() -{ - VAR_LINE="迁移系统特有(新安装)" - - #清理数据 - rm -f $EXP_DIR/$PKG_COMP_LIST_01_TRANS - - line_num=1 - - while read line - do - - if [ $line_num -eq 1 ];then - echo $line >> $EXP_DIR/$PKG_COMP_LIST_01_TRANS - fi - - if [ $line_num -eq 2 ];then - var_1=${line%|*} - var_2=${line#*|} - PKGINFO_2_LINE2="$var_1|$VAR_LINE|$var_2" - echo $PKGINFO_2_LINE2 >> $EXP_DIR/$PKG_COMP_LIST_01_TRANS - fi - - if [ $line_num -eq 3 ];then - echo $line >> $EXP_DIR/$PKG_COMP_LIST_01_TRANS - fi - - line_num=`expr $line_num + 1` - done < $EXP_DIR/$PKG_COMP_LIST_01 - - #获取已安装包列表 - for line1 in `rpm -qa | grep uelc20` - #for line1 in `rpm -qa | grep el8` - do - var1=${line1%-*} - echo ${var1%-*} >> $EXP_DIR/$PKG_COMP_LIST_03 - done - - #迁移完成后uelc20包列表不为空,如果为空创建空文件以便统计汇总xls - if [ ! -f $EXP_DIR/$PKG_COMP_LIST_03 ];then - touch $EXP_DIR/$PKG_COMP_LIST_03 - fi -} - -get_system_info -pkg_comp_rst - -- 2.20.1