自己写的一个批量下载Kernel.org版本,并对本地的Kernel进行比较的脚本。记录一下吧。
自己部门6年前维护的一个kernel版本,只知道是基于kernel 2.6版本,却不知道是基于2.6.x版的。于是乎,写了这么个脚本,批量把2.6.x的所有版本全部下载回来,使用diff一一进行比对(导出到conclusion/diff-2.6.x-and-k2.txt文件中),并将所有版本的diff结果进行分析,再将分析数据导出到conclusion/all.txt中。
在conclusion/all.txt中,第一列是diff时官方的版本号,第二列是diff结果(conclusion/diff-2.6.x-and-k2.txt)的行数。重点在于第二列,这些数字中最小的那一个所对应的版本号,应该就是我部门维护的kernel的详细版本号了。
#!/bin/bashfor i in `seq 0 39`do echo donwloading https://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.$i.tar.bz2 wget https://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.$i.tar.bz2 for a in `seq 1 57` do echo downloading https://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.$i.$a.tar.bz2 wget https://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.$i.$a.tar.bz2 donedoneif [ ! -d conclusion ]; then mkdir conclusionfifor file in `ls linux-2.6.*.tar.bz2`do dirname=${file%.tar*} version=${dirname##*-} echo $dirname echo $version tar -jxvf $file diff -r $dirname k2_os-kernel-2.6.28.10 > conclusion/diff-$version-and-k2.txt rm -rf $dirname stat=`cat conclusion/diff-$version-and-k2.txt | wc -l` echo $version ' ' $stat >> conclusion/all.txtdonecount=`awk -F ' ' '{print $2}' conclusion/all.txt | sort -n | head -1`version=`cat conclusion/all.txt | grep $count$ | awk -F ' ' '{print $1}' $line`echo '' >> conclusion/all.txtecho The shortest diff is $count, which kernel version is $version >> conclusion/all.txt
原文地址:批量下载Linux Kernel版本,并对本地的Kernel进行比较, 感谢原作者分享。 不要轻言放弃,否则对不起自己