-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcleanboot.sh
More file actions
50 lines (45 loc) · 1.03 KB
/
cleanboot.sh
File metadata and controls
50 lines (45 loc) · 1.03 KB
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
41
42
43
44
45
46
47
48
49
50
#!/bin/bash
echo "Detect unused kernel"
KernelList=($(dpkg --get-selections|grep linux-image))
kcount=${#KernelList[@]}
UnusedKernel=""
usedKernel=""
for kel in ${KernelList[@]}
do
if [ $kel != "install" ] && [ $kel != "deinstall" ]; then
currentkl=$kel
elif [ $kel = "deinstall" ]; then
UnusedKernel="$UnusedKernel $currentkl"
else
usedKernel="$usedKernel $currentkl"
fi
done
if [ -z "$UnusedKernel" ]; then
echo "No unused kernel"
else
echo "Unused kernel is:$UnusedKernel"
read -p "Do you want delete these uninstalled kernel images(Y/n):"
if [ $REPLY != "n" ]; then
echo "begin clean"
ukl=($UnusedKernel)
for ul in ${ukl[@]}
do
apt-get purge $ul
done
fi
fi
currentKernelRelease=$(uname -r)
cv=${currentKernelRelease%%-generic}
uks=($usedKernel)
for uk in ${uks[@]}
do
if echo $uk|grep -q $cv
then
echo "This kernel $uk is your current used"
elif [ $uk = "linux-image-generic" ]; then
echo "Skip generic"
else
apt-get purge $uk
fi
done
echo "Boot clean complete"