分页: 1 / 1

脚本清理ubuntu的老内核:有错误求修正!!

发表于 : 2012-04-21 14:49
Points

代码: 全选

#!/bin/sh
#
# 清理ubuntu的老内核
#sudo aptitude purge ~ilinux-image-.*\(\!`uname -r`\)
CURRENT="`uname -r | awk -F"-" '{print $1"-"$2}'`"
HEADERS=""
IMAGES=""
for HEADER in `dpkg --get-selections | grep ^linux-headers | \
grep -vE "(generic|386|virtual)" | awk '{gsub(/linux-headers-/,"",$1);print $1}'`
do
    if [[ "$CURRENT" < "$HEADER" ]]
    then
        echo "正在运行的内核不是最新的。 $CURRENT < $HEADER"
        echo "Running kernel is not the newest. $CURRENT < $HEADER"
        exit 1
    else
        [[ "$CURRENT" != "$HEADER" ]] && {
            HEADERS="${HEADERS} linux-headers-${HEADER}"
            IMAGE="`dpkg --get-selections | grep ^linux-image | \
                grep "${HEADER}" | awk '{print $1}'`"
            IMAGES="${IMAGES} $IMAGE"
        }
    fi
done
 
if [[ x"$HEADERS" == x"" ]]
then
    echo "没有要清理的老内核."
    echo "No old kernel need to clean."
    exit 0
fi
CMD="sudo apt-get purge $HEADERS $IMAGES"
echo "$CMD"
if [ "$1" == "-e" ]
then
    sh -c "$CMD"
else
    echo "请确定以上命令是否正确,然后输入 $0 -e 来执行以上命令。"
    echo "Be sure this command is right, then type $0 -e to execute."
fi
运行时一闪没。。 :em06

Re: 脚本清理ubuntu的老内核:有错误求修正!!

发表于 : 2012-04-21 16:31
aerofox
用 bash -v 执行看看。

Re: 脚本清理ubuntu的老内核:有错误求修正!!

发表于 : 2012-04-22 13:49
Points
aerofox 写了:用 bash -v 执行看看。

代码: 全选

~$ bash -v PurgeOldKernel
#!/bin/sh
#
# 清理ubuntu的老内核
#dpkg -l linux*2.6* | grep ii | grep -E 'linux-headers|linux-image' | grep -v `uname -r | cut -d- -f1,2` | cut -d' ' -f3 | xargs sudo apt-get purge

#sudo aptitude purge ~ilinux-image-.*\(\!`uname -r`\)
CURRENT="`uname -r | awk -F"-" '{print $1"-"$2}'`"
uname -r | awk -F"-" '{print $1"-"$2}'
HEADERS=""
IMAGES=""
for HEADER in `dpkg --get-selections | grep ^linux-headers | \
grep -vE "(generic|386|virtual)" | awk '{gsub(/linux-headers-/,"",$1);print $1}'`
do
    if [[ "$CURRENT" < "$HEADER" ]]
    then
        echo "正在运行的内核不是最新的。 $CURRENT < $HEADER"
        echo "Running kernel is not the newest. $CURRENT < $HEADER"
        exit 1
    else
        [[ "$CURRENT" != "$HEADER" ]] && {
            HEADERS="${HEADERS} linux-headers-${HEADER}"
            IMAGE="`dpkg --get-selections | grep ^linux-image | \
                grep "${HEADER}" | awk '{print $1}'`"
            IMAGES="${IMAGES} $IMAGE"
        }
    fi
done
dpkg --get-selections | grep ^linux-headers | grep -vE "(generic|386|virtual)" | awk '{gsub(/linux-headers-/,"",$1);print $1}'
 
if [[ x"$HEADERS" == x"" ]]
then
    echo "没有要清理的老内核."
    echo "No old kernel need to clean."
    exit 0
fi
没有要清理的老内核.
No old kernel need to clean.
~$ 
出来这个是什么意思呀,就是显示一下脚本? :em20

Re: 脚本清理ubuntu的老内核:有错误求修正!!

发表于 : 2012-04-22 21:42
aerofox
看来你之前“运行一闪没”是用鼠标双击运行的吧?
现在是告诉你“没有要清理的老内核”了。