有时候需要将A台机器(已经安装完备)的配置完整地拷贝到B台机器(未安装)。首要任务就是要看A机器在安装系统的时候安装了哪些包,以免在B台机器的安装中有遗漏.
当然逐行找install.log 的RPM信息简直可以让人疯掉. 用正则表达式很难找到版本号的规律而且实现起来超级麻烦。如下给出一个小程序用以提取install.log 的RPM信息.
思路:
1. 想办法去掉install.log 中的Installing,并将去掉后的剩余内容保存为packages.list.
2. 让系统读取packages.list,并利用RPM的选项--qf 获取RPM的详细信息.
3. 执行拷贝.
#!/bin/bash
# This script is used to capture the detail options of install.log
# Including the the RPM name, version and release.
# Created by Joe.Yeung<yangjiazhi@live.com>
VOIP_CD=/mnt/cdrom
ALL_RPMS_DIR=/mnt/cdrom/CentOS
VOIP_RPMS_DIR=/voip/CentOS
cat /root/install.log |grep Installing | sed 's/Installing //g'| sed 's/^[0-9]\+://g' > /root/packages.list
packages_list=/root/packages.list
cat $packages_list |
while read row; do
#echo $row
Name=`rpm -q --qf=%{name} $row`
echo