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

end
shell 两个rpm包做差分的更多相关文章
- shell如何生成rpm包仓库列表文件的对比结果
基本步骤: 1.切换至仓库目录RPM_LIST_DIR1和RPM_LIST_DIR2 2.ls列出仓库的rpm包文件并分别重定向至输出文件rpm_list_file1和rpm_list_file2 3 ...
- 制作RPM包
RPM包制作过程 1.1 前期工作 1)创建打包用的目录rpmbuild/{BUILD,SPECS,RPMS, SOURCES,SRPMS} 建议使用普通用户,在用户家目录中创建 2)确定好制作的对象 ...
- MySQL5.6.36 linux rpm包安装配置文档
一.卸载自带mysql,删除MySQL的lib库,服务文件 [root@localhost ~]#rpm -qa|grep mysql qt-mysql-4.6.2-26.el6_4.x86_64 m ...
- RPM包的版本号比较
版本号表示格式为 epoch:version-release,例如 1:2-3 第一条原则是 rpm 属性优先级 epoch > version > release 两个 r ...
- 定制化rpm包及本地yum仓库搭建
为方便本地yum的管理,一般都是在公司局域网内搭建本地yum仓库,实现公司内部快速安装常用软件. 步骤如下: 1.搭建要实现本地yum管理的软件,测试该软件搭建成功与否: 2.定制rpm包及其相关依赖 ...
- rpm包制作介绍
RPM(Rpm Package Management)在ReadHat等发行版下被用作软件包管理程序,其将某个软件相关的文件置入一个.rpm包中,用rpm命令,我们可以方便地完成Linux下软件安装. ...
- 其他综合-搭建本地yum仓库及自制rpm包
搭建本地yum仓库及自制rpm包 实验目的 为方便本地 yum 的管理,建本地 yum 仓库,实现局域网内部快速安装常用软件 实验环境 VMware:12版本 系统版本:CentOS Linux re ...
- Ceph 客户端的 RPM 包升级问题
问题 最近想把一个现有的 Ceph 客户端升级为最新的 M 版: [root@overcloud-ovscompute-0 ~]# rpm -qa | grep ceph puppet-ceph-2. ...
- 制作FastDFS的RPM包
首先获取fastdfs的源码,因为fastdfs还依赖一个libfastcommon的库,所以也要准备好. fastdfs的源码目录结构: libfastcommon的源码目录结构: 接下来将以Cen ...
随机推荐
- APP-FND-01706: Error Updating TABLE_NAME In FND_DOCUMENT_SEQUENCES (文档 ID 338026.1)
In this Document Symptoms Cause Solution Applies to: Oracle Order Management - Version 11.5.10.0 and ...
- MySQL sql_slave_skip_counter
因为mysql的主从复制是逻辑复制,所以slave在apply relay log的过程中,经常会遇到错误,而参数sql_slave_skip_counter可以设置跳过多少个event,让slave ...
- phpcms 2008 /preview.php SQL注入漏洞
漏洞版本: phpcms 2008 漏洞描述: phpcms2008 是一款基于 PHP+Mysql 架构的网站内容管理系统,也是一个开源的 PHP 开发平台. phpcms 2008的preview ...
- Linux kernel AACRAID Driver Compat IOCTL 本地安全绕过漏洞
漏洞名称: Linux kernel AACRAID Driver Compat IOCTL 本地安全绕过漏洞 CNNVD编号: CNNVD-201311-390 发布时间: 2013-11-29 更 ...
- Implementing Remote Validation in MVC
Using Validation Code Step 1: Create model for Catalog table and apply the the remote validation for ...
- [Rosa]Android ListView 适配器原理及优化(转)
ListView的Adapter的作用如下图所示: Adapter的作用就是ListView界面与数据之间的桥梁,当列表里的每一项显示到页面时,都会调用Adapter的getView方法返回一个V ...
- 启动Selenium RC —— 我的第一个shell
打开终端 1. 新建一个sh文件 $ vim a.sh 2. 写入以下内容 #! /bin/bash cd Desktop/selenium/jar java -jar selenium-server ...
- 【HTML】Intermediate5:Definition Lists
dl(defination list) dt(defination term) dd(defination description)
- 韦东山yy公开课笔记(2)--汇编,段,栈,重定位/链接地址,位置无关吗
1. 要不要学习汇编 可以只懂一点,工作中基本不用,一旦用就是出了大问题 ldr : load 读内存 ldr r0, [r1] : r1里存放的是地址值, 去这个地址读取4字节的内容,存入r0 s ...
- CosCos2D-android 代码总结
CosCos2D-android 学习总结 资料: Android游戏开发视频教程 Cocos-android-1代码包下载 直接上代码: MainActivity中Cocos常规写法: //coco ...