我安装了这些内核版本,它们通过 cron 重启作业被“修改”了上次访问日期:
/boot$ ll vmlinuz*
-rw------- 1 root root 5836336 Jan 8 20:00 vmlinuz-3.13.0-92-generic
-rw------- 1 root root 5017584 Oct 18 13:28 vmlinuz-3.2.0-113-generic
-rw------- 1 root root 7069136 Jan 25 16:58 vmlinuz-4.4.0-59-generic
-rw------- 1 root root 7070992 Feb 8 19:38 vmlinuz-4.4.0-62-generic
-rw------- 1 root root 7087088 Feb 21 04:26 vmlinuz-4.4.0-63-generic
-rw------- 1 root root 7087152 Feb 20 06:40 vmlinuz-4.4.0-64-generic
-rw------- 1 root root 7087024 Mar 3 11:25 vmlinuz-4.4.0-66-generic
-rw------- 1 root root 6988624 Nov 19 21:01 vmlinuz-4.4.33-040433-generic
-rw------- 1 root root 7046080 Jun 24 2016 vmlinuz-4.6.3-040603-generic
-rw------- 1 root root 3974752 Aug 16 2016 vmlinuz-4.7.1-040701-generic
-rw------- 1 root root 4134688 Aug 20 2016 vmlinuz-4.7.2-040702-generic
-rw------- 1 root root 4134688 Sep 7 2016 vmlinuz-4.7.3-040703-generic
-rw------- 1 root root 4138784 Jan 8 20:17 vmlinuz-4.7.5-040705-generic
-rw------- 1 root root 7431968 Nov 28 08:03 vmlinuz-4.8.10-040810-generic
-rw------- 1 root root 4994848 Oct 7 08:50 vmlinuz-4.8.1-040801-generic
-rw------- 1 root root 7415584 Jan 8 19:58 vmlinuz-4.8.11-040811-generic
-rw------- 1 root root 7431968 Jan 8 19:57 vmlinuz-4.8.12-040812-generic
-rw------- 1 root root 7427872 Oct 22 05:46 vmlinuz-4.8.4-040804-generic
-rw------- 1 root root 7427872 Nov 19 11:24 vmlinuz-4.8.5-040805-generic
-rw------- 1 root root 7485216 Jan 2 15:12 vmlinuz-4.9.0-040900-generic
-rw------- 1 root root 7419680 Feb 24 04:26 vmlinuz-4.9.10-040910-generic
-rw------- 1 root root 7485216 Jan 10 04:15 vmlinuz-4.9.1-040901-generic
-rw------- 1 root root 7419680 Mar 5 17:40 vmlinuz-4.9.12-040912-generic
-rw------- 1 root root 7419680 Mar 8 04:16 vmlinuz-4.9.13-040913-generic
-rw------- 1 root root 7403296 Jan 25 18:21 vmlinuz-4.9.4-040904-generic
-rw------- 1 root root 7403296 Feb 2 17:14 vmlinuz-4.9.5-040905-generic
-rw------- 1 root root 7419680 Feb 12 00:43 vmlinuz-4.9.8-040908-generic
-rw------- 1 root root 7415584 Feb 12 10:58 vmlinuz-4.9.9-040909-generic
对于给定的内核,我想添加文件大小以显示删除该内核可以节省多少空间。例如4.7.1用计算机术语来说,这是古代历史,并且已经到了生命终结(EOL):
/boot$ ll *4.7.1*
-rw-r--r-- 1 root root 1238700 Aug 16 2016 abi-4.7.1-040701-generic
-rw-r--r-- 1 root root 181872 Aug 16 2016 config-4.7.1-040701-generic
-rw-r--r-- 1 root root 41705644 Feb 9 16:50 initrd.img-4.7.1-040701-generic
-rw------- 1 root root 3141159 Aug 16 2016 System.map-4.7.1-040701-generic
-rw------- 1 root root 3974752 Aug 16 2016 vmlinuz-4.7.1-040701-generic
创建列表/数组的最佳方法是什么:
Kernel Version w.x.y-zzzz - Last Access - Size
Kernel Version w.x.y-zzzz - Last Access - Size
. . . . . . .
Kernel Version w.x.y-zzzz - Last Access - Size
计划使用禅意可以选择从分区中删除特定条目以节省空间。我每周安装一次或两次新内核(它们不再像以前那样每周日发布),所以我的 30 GB 分区需要每两三个月修剪一次。
答案1
用于du
获取总大小并stat
获取访问时间:
#! /bin/bash
for f in /boot/vmlinuz*
do
[[ $f =~ vmlinuz-(.*)-generic ]]
v=${BASH_REMATCH[1]}
s=$(du -ch /boot/*-$v-* | awk '/total/{print $1}')
printf '%s - %s - %s\n' "$v" "$(stat -c %x "$f")" "$s"
done
输出:
4.4.0-21 - 2016-12-24 16:20:59.858505053 +0900 - 48M
4.4.0-57 - 2016-12-24 16:58:03.000000000 +0900 - 48M
4.4.0-59 - 2017-01-11 10:41:35.000000000 +0900 - 48M
4.4.0-62 - 2017-02-03 13:25:58.000000000 +0900 - 48M
4.4.0-64 - 2017-02-23 20:07:03.105502000 +0900 - 48M
4.4.0-66 - 2017-03-08 10:24:16.000000000 +0900 - 48M
答案2
这是一个鲁布·戈德堡 (Rube Goldberg) 版本,以防您正在寻找脚本中要剖析的内容……
ls -l|grep "4.8" |awk '{print $5}'|paste -s -d+ |bc
答案3
这就是该du
命令的设计目的。只需执行它du -s *4.7.1*
,它就会为您提供大小(为每个已安装的内核版本循环执行此操作)。您还可以使用-h
或等标志-k
来更改输出格式。请参阅man du
了解所有可能性。