2010年 02月 28日 的归档
清理ubuntu老内核的小脚本
ubuntu用久了,升级了几次内核以后,就免不了需要清理一下老的内核,毕竟一套内核就有170多M的空间呢。但是每次都打一堆字来清理也烦了。虽然Ubuntu 命令技巧(这里再罗嗦几句:如果还有ubuntuer没看过这个,强烈建议看一遍。)里有删除旧内核的命令,而且就一行:
| 
					 1  | 
						sudo aptitude purge ~ilinux-image-.*\(\!`uname -r`\)  | 
					
但是我却不是很喜欢,因为这这个没有把linux-headers-xxx删除掉。
于是自己写了个繁的,需要的可以自己保存,以便不时之需。
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40  | 
						#!/bin/bash # 清理ubuntu的老内核 # by bones7456 # http://li2z.cn 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  |