Skip to content

Instantly share code, notes, and snippets.

@relkai

relkai/reinemackefrau.sh

Last active Sep 3, 2018
Embed
What would you like to do?
Ubuntu aufräumen
#!/bin/bash
# Farben
gruen="\033[1;32m"
gelb="\033[1;33m"
blau="\033[1;34m"
violett="\033[1;35m"
weiss="\033[1;37m"
farbe_aus="\033[0m"
# Banner
echo -e "\n${weiss}------------------------------------------------------"
echo -e " T H E R E T U R N O F T H E${farbe_aus}"
echo -e "${violett} ."
echo -e ",-. ,-. . ,-. ,-. ,-,-. ,-. ,-. | , ,-. ,\" ,-. ,-. . ."
echo -e "| |-' | | | |-' | | | ,-| | |< |-' |- | ,-| | |"
echo -e "' `-' ' ' ' `-' ' ' ' `-^ `-' ' ` `-' | ' `-^ `-^"
echo -e " '${farbe_aus}"
echo -e "${weiss}------------------------------------------------------"
echo -e " SIE SAUGT NICHT MEHR ... SIE BLAEST JETZT!"
echo -e "------------------------------------------------------${farbe_aus}"
# Festplattenkapazität vor Bereinigung
used_before=$(( $(df | head -n 2 | tail -n 1 | awk '{print $3;}')/1024 ))
# Kernel-Versionen ermitteln
kernel_highest=$(dpkg -l 'linux-image-[0-9.]*-[0-9]*-[a-zA-Z0-9]*' | grep ^ii | awk '{print $2}' | sort -V | tail -n 1 | sed 's/^linux-image-//g')
kernel_current=$(uname -r)
# Versionsnummern aus Kernel-Versionen extrahieren
version_highest=$(echo ${kernel_highest} | sed 's/\([0-9.]*-[0-9]*\)-.*$/\1/')
version_current=$(echo ${kernel_current} | sed "s/\(.*\)-\([^0-9]\+\)/\1/")
# Zu entfernende Kernel-Versionen ermitteln
kernel_purge=$(dpkg -l 'linux-*-[0-9-]*' | grep ^ii | awk '{print $2}' | sed "/${version_current}/d;/${version_highest}/d")
# Ausgabe der ermittelten Kernel-Versionen
echo -e "\n${gruen}Folgender Kernel ist die neueste installierte Version:${farbe_aus}"
echo ${kernel_highest}
echo -e "\n${gruen}Folgender Kernel ist aktiv:${farbe_aus}"
echo ${kernel_current}
echo -e "\n${gruen}Folgende Kernel werden entfernt:${farbe_aus}"
if [ "${kernel_purge}" != '' ]; then
# Ausgabe der zu entfernenden Kernel-Versionen
echo -e $(echo ${kernel_purge} | sed 's/\ /\\n/g')
while [ "${del_confirm}" != 'j' -a "${del_confirm}" != 'n' ]; do
echo -en "\n${blau}Sollen alte Kernel-Versionen entfernt werden? (j/n) ${farbe_aus}"
read -n 1 del_confirm
done
if [ "${del_confirm}" == 'j' ]; then
echo -e "\n${gruen}Entferne alte Kernel-Versionen${farbe_aus}"
# Entfernen alter Kernel-Versionen
apt-get purge -y ${kernel_purge}
else
echo -e "\n${gruen}Alte Kernel-Versionen werden nicht entfernt${farbe_aus}"
fi
else
echo -e "${weiss}Keine alten Kernel-Versionen vorhanden${farbe_aus}"
fi
echo -e "\n${gruen}Paketcache wird aufgeraeumt${farbe_aus}"
apt-get clean
echo -e "\n${gruen}Ungenutzte Abhaengigkeiten werden entfernt${farbe_aus}"
apt-get autoremove
# Festplattenkapazität nach Bereinigung
used_after=$(( $(df | head -n 2 | tail -n 1 | awk '{print $3;}')/1024 ))
# Differenz ermitteln
used_diff=$(( ${used_before}-${used_after} ))
# Anzeige der gewonnenen Festplattenkapazität
echo -e "\n${gelb}Verwendeter Platz vor Bereinigung:${farbe_aus} ${used_before} MB"
echo -e "${gelb}Verwendeter Platz nach Bereinigung:${farbe_aus} ${used_after} MB"
echo -e "${gelb}Freigegebene Festplattenkapazitaet:${farbe_aus} ${used_diff} MB"
echo -e "\n${weiss}ALLES SAUBER! FEIERABEND! :-)${farbe_aus}\n"
exit 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment