批量下载Linux Kernel版本,并对本地的Kernel进行比较

自己写的一个批量下载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进行比较

相关文章:

你感兴趣的文章:

标签云: