我看到很多关于如何释放/boot分区空间的帖子,这也是我的目标。然而,我只对删除旧内核感兴趣,而不是每一个内核,只删除当前的内核。
我需要解决方案是一行命令,因为我将从Puppet运行脚本,我不想有额外的文件存在。到目前为止,我得到了以下内容:
更准确地说,它目前的功能如下:
- 列出所有的linux-*软件包并打印它们的名称。 - 只列出那些带有数字的软件包,并对它们进行排序,返回逆序结果。这样,较旧的内核会被列在最后。 - 仅打印当前内核之后的结果。 - 由于存在一些linux-{image,headers}的结果,请确保不会清除与当前内核相关的任何内容。 - 调用apt进行清理。
这个方法是可行的,但我相信解决方案可以更加优雅,并且对于生产环境是安全的,因为我们至少有20台服务器运行着Ubuntu。
感谢您的时间, Alejandro.
我需要解决方案是一行命令,因为我将从Puppet运行脚本,我不想有额外的文件存在。到目前为止,我得到了以下内容:
dpkg -l linux-* | awk '/^ii/{print $2}' | egrep [0-9] | sort -t- -k3,4 --version-sort -r | sed -e "1,/$(uname -r | cut -f1,2 -d"-")/d" | grep -v -e `uname -r | cut -f1,2 -d"-"` | xargs sudo apt-get -y purge
更准确地说,它目前的功能如下:
- 列出所有的linux-*软件包并打印它们的名称。 - 只列出那些带有数字的软件包,并对它们进行排序,返回逆序结果。这样,较旧的内核会被列在最后。 - 仅打印当前内核之后的结果。 - 由于存在一些linux-{image,headers}的结果,请确保不会清除与当前内核相关的任何内容。 - 调用apt进行清理。
这个方法是可行的,但我相信解决方案可以更加优雅,并且对于生产环境是安全的,因为我们至少有20台服务器运行着Ubuntu。
感谢您的时间, Alejandro.