zoukankan      html  css  js  c++  java
  • shell 两个rpm包做差分

    当前目录下两个rpm包做差分。

    *.rpm

    两个目录,解压rpm包。

    export LANG=c

    差分判断是脚本还是Binary Files

    脚本添加命令行提示符,awk。

    [root@sj_x861 diff_rwz]# cat diff_rpm.sh
    #!/bin/bash

    export LANG=c
    source ~/.bashrc

    #############################
    #basic command label
    #############################
    if [ "$(whoami)" = "$(basename $(pwd))" ]; then
         cmd_label="[$(whoami)@$(hostname) ~]# "
    else
         cmd_label="[$(whoami)@$(hostname) $(basename $(pwd))]# "
    fi

    mkdir new_bin/ new_rpm/ old_bin/ old_rpm/
    rpms=(`ls *.rpm`)
    cp -a ${rpms[0]} old_rpm
    cp -a ${rpms[1]} new_rpm

    echo -e "${cmd_label}ls"
    ls
    echo -e "${cmd_label}ls -l */*.rpm"
    ls -l */*.rpm
    echo -e "${cmd_label}md5sum */*.rpm"
    md5sum */*.rpm
    echo -e "${cmd_label}cd new_bin/"
    cd new_bin/
    echo -e "${cmd_label}ls"
    ls
    echo -e "${cmd_label}rpm2cpio ../new_rpm/*.rpm | cpio -idm"
    rpm2cpio ../new_rpm/*.rpm | cpio -idm
    echo -e "${cmd_label}cd ../old_bin/"
    cd ../old_bin/
    echo -e "${cmd_label}ls"
    ls
    echo -e "${cmd_label}rpm2cpio ../old_rpm/*.rpm | cpio -idm"
    rpm2cpio ../old_rpm/*.rpm | cpio -idm
    echo -e "${cmd_label}ls"
    ls
    echo -e "${cmd_label}cd .."
    cd ..
    echo -e "${cmd_label}ls"
    ls
    echo -e "${cmd_label}diff -r old_bin/ new_bin/"
    diff -r old_bin/ new_bin/

    diff -r old_bin/ new_bin/ | grep "Binary files " >/var/tmp/diff_rpm.txt
    if [[ -s /var/tmp/diff_rpm.txt ]];then
            echo -e "${cmd_label}diff -r old_bin/ new_bin/ | grep "Binary files " | awk '{print $3; print $5}' | xargs md5sum"
            diff -r old_bin/ new_bin/ | grep "Binary files " | awk '{print $3; print $5}' | xargs md5sum
    fi

    diff -r old_bin/ new_bin/ | grep "diff -r "  >/var/tmp/diff_rpm.txt
    if [[ -s /var/tmp/diff_rpm.txt ]];then
            echo -e "${cmd_label}diff -r old_bin/ new_bin/ | grep "diff -r " | awk '{print $3; print $4}' | xargs md5sum"
            diff -r old_bin/ new_bin/ | grep "diff -r " | awk '{print $3; print $4}' | xargs md5sum
    fi

    rm -rf new_bin/ new_rpm/ old_bin/ old_rpm/
    [root@sj_x861 diff_rwz]# cat

    awk

    [root@sj_x861 diff_rms]# cat temp
    ls
    ll */*.rpm
    md5sum */*.rpm
    cd new_bin/
    ls
    rpm2cpio ../new_rpm/*.rpm | cpio -idm
    cd ../old_bin/
    ls
    rpm2cpio ../old_rpm/*.rpm | cpio -idm
    ls
    cd ..
    ls
    diff -r old_bin/ new_bin/
    diff -r old_bin/ new_bin/ | grep "Binary files " | awk '{print $3; print $5}' | xargs md5sum  =>双引号和美元符号需要转义.
    #diff -r old_bin/ new_bin/ | grep "diff -r " | awk '{print $3; print $4}' | xargs md5sum
    [root@sj_x861 diff_rms]# cat temp | awk '{ print "echo -e "${cmd_label}"$0"""; print $0}'
    echo -e "${cmd_label}ls"
    ls
    echo -e "${cmd_label}ll */*.rpm"
    ll */*.rpm
    echo -e "${cmd_label}md5sum */*.rpm"
    md5sum */*.rpm
    echo -e "${cmd_label}cd new_bin/"
    cd new_bin/
    echo -e "${cmd_label}ls"
    ls
    echo -e "${cmd_label}rpm2cpio ../new_rpm/*.rpm | cpio -idm"
    rpm2cpio ../new_rpm/*.rpm | cpio -idm
    echo -e "${cmd_label}cd ../old_bin/"
    cd ../old_bin/
    echo -e "${cmd_label}ls"
    ls
    echo -e "${cmd_label}rpm2cpio ../old_rpm/*.rpm | cpio -idm"
    rpm2cpio ../old_rpm/*.rpm | cpio -idm

    image

    end

  • 相关阅读:
    国内的pythoner强烈建议使用豆瓣的pypi源 zz
    python3.x中的urllib模块
    idcheck.py
    17、关于hibernate的N+1问题
    16、【转】Hibernate 原汁原味的四种抓取策略
    1、SSH的整合---->将Struts2整合到Spring中
    1、利用json2html.js处理json数据
    1、Ubuntu14.04使用root登陆帐户
    2、CentOS中修改yum源
    1、在CentOS上安装Java JDK的步骤
  • 原文地址:https://www.cnblogs.com/laorenjia/p/4740644.html
Copyright © 2011-2022 走看看