User:Metamm: Difference between revisions
From ICO wiki
Jump to navigationJump to search
No edit summary |
No edit summary |
||
Line 10: | Line 10: | ||
PAKETIHALDUR=$1 | PAKETIHALDUR=$1 | ||
#Kontrollime, kas kasutaja omab juurkasutaja õigusi | #Kontrollime, kas kasutaja omab juurkasutaja õigusi | ||
if [ $UID -ne 0 ]; then | if [ $UID -ne 0 ]; then | ||
Line 17: | Line 16: | ||
exit 1 | exit 1 | ||
#Kontrollime, kas skript käivitati õige arvu argumentidega | #Kontrollime, kas skript käivitati õige arvu argumentidega | ||
elif [ $# -ne 1 ]; then | elif [ $# -ne 1 ]; then | ||
echo -e "Käivita skript ./$(basename $0) <paketihaldur> \n[N: rpm või dpkg]" | echo -e "Käivita skript ./$(basename $0) <paketihaldur> \n[N: rpm või dpkg]" | ||
exit 1 | exit 1 | ||
#Kontrollime, kas kasutaja tahab kasutada rpm eemaldust | |||
elif [ $(echo $PAKETIHALDUR | tr [:upper:] [:lower:]) = "rpm" ]; then | |||
#Kontrollime, kas | #Kontrollime, kas RPM käsk on shellile teada | ||
#type rpm > /dev/null 2>&1 || exit 1 | |||
command -V rpm > /dev/null 2>&1 | |||
if [ $? -eq 1 ]; then | |||
echo "rpm käsk ei ole shellile teada. Väljun" | |||
exit 1 | |||
#Kontrollime, kas kerneleid on juba 2 või vähem | |||
elif [ $(echo "$(rpm -q kernel | wc -l) - 2" | bc -l) -le 2 ]; then | |||
echo "Olemasolevaid kerneli versioone on juba 2 või vähem" | |||
exit 1 | |||
else | |||
echo "Kasutan rpm eemaldust" | |||
RPM_KERNEL_LIST=$(rpm -q kernel) | |||
NR_TO_REMOVE=$(echo "$(rpm -q kernel | wc -l) - 2" | bc -l) | |||
for i in $( echo "$RPM_KERNEL_LIST" | head -$(echo $NR_TO_REMOVE) ); do | |||
echo "rpm -e $i" | |||
done | |||
fi | |||
#Kontrollime, kas kasutaja tahab kasutada dpkg eemaldust | |||
elif [ $(echo $PAKETIHALDUR | tr [:upper:] [:lower:]) = "dpkg" ]; then | elif [ $(echo $PAKETIHALDUR | tr [:upper:] [:lower:]) = "dpkg" ]; then | ||
#Kontrollime, kas DPKG käsk on shellile teada | |||
#type dpkg > /dev/null 2>&1 || exit 1 | |||
command -V dpkg > /dev/null 2>&1 | |||
if [ $? -eq 1 ]; then | |||
echo "dpkg käsk ei ole shellile teada. Väljun" | |||
exit 1 | |||
#Kontrollime, kas kerneleid on juba 2 või vähem | |||
DPKG_KERNEL_LIST=$(dpkg --list | grep linux-image | awk '{print $3}' | cut -d"." -f4 --complement) | |||
NR_TO_REMOVE=$(echo "$(echo "$DPKG_KERNEL_LIST" | wc -l) - 2" | bc -l) | |||
elif [ $(echo "$(echo "$DPKG_KERNEL_LIST" | wc -l) - 2" | bc -l) -le 2 ]; then | |||
echo "Olemasolevaid kerneli versioone on juba 2 või vähem" | |||
exit 1 | |||
else | |||
echo "Kasutan dpkg eemaldust" | |||
for i in $( echo "$DPKG_KERNEL_LIST" | head -$(echo $NR_TO_REMOVE) ); do | |||
echo "apt-get remove linux-image-$i-generic -y" | |||
done | |||
fi | |||
#Anname teada, et kasutaja sisestatud argument ei sobi selle skriptiga | |||
else | else | ||
echo "$PAKETIHALDUR <--Selline paketihaldur ei sobi. Ainult dpkg või rpm" | echo "$PAKETIHALDUR <--Selline paketihaldur ei sobi. Ainult dpkg või rpm" | ||
Line 51: | Line 82: | ||
fi | fi | ||
#Väljastame, mida skript tegi | #Väljastame, mida skript tegi | ||
echo "Skript kustutas kõik vanad kerneli versioonid peale 2 viimase" | |||
echo "Skript kustutas kõik | |||
</source> | </source> |
Revision as of 12:12, 16 May 2011
Quest 3 - Op.Sys aine
#!/bin/bash
#Autor: Meelis Tamm, A21, metamm@itcollege.ee
#Skript eemaldab vanad kerneli kujutisfailid, v.a. kaks viimast versiooni
#Lisaks kujutisfailidele, eemaldatakse ka vastavad kerneli versioonid grub nimekirjast (seda teed paketihaldur automaagiliselt)
PAKETIHALDUR=$1
#Kontrollime, kas kasutaja omab juurkasutaja õigusi
if [ $UID -ne 0 ]; then
echo "Käivita skript $(basename $0) juurkasutaja õigustes"
exit 1
#Kontrollime, kas skript käivitati õige arvu argumentidega
elif [ $# -ne 1 ]; then
echo -e "Käivita skript ./$(basename $0) <paketihaldur> \n[N: rpm või dpkg]"
exit 1
#Kontrollime, kas kasutaja tahab kasutada rpm eemaldust
elif [ $(echo $PAKETIHALDUR | tr [:upper:] [:lower:]) = "rpm" ]; then
#Kontrollime, kas RPM käsk on shellile teada
#type rpm > /dev/null 2>&1 || exit 1
command -V rpm > /dev/null 2>&1
if [ $? -eq 1 ]; then
echo "rpm käsk ei ole shellile teada. Väljun"
exit 1
#Kontrollime, kas kerneleid on juba 2 või vähem
elif [ $(echo "$(rpm -q kernel | wc -l) - 2" | bc -l) -le 2 ]; then
echo "Olemasolevaid kerneli versioone on juba 2 või vähem"
exit 1
else
echo "Kasutan rpm eemaldust"
RPM_KERNEL_LIST=$(rpm -q kernel)
NR_TO_REMOVE=$(echo "$(rpm -q kernel | wc -l) - 2" | bc -l)
for i in $( echo "$RPM_KERNEL_LIST" | head -$(echo $NR_TO_REMOVE) ); do
echo "rpm -e $i"
done
fi
#Kontrollime, kas kasutaja tahab kasutada dpkg eemaldust
elif [ $(echo $PAKETIHALDUR | tr [:upper:] [:lower:]) = "dpkg" ]; then
#Kontrollime, kas DPKG käsk on shellile teada
#type dpkg > /dev/null 2>&1 || exit 1
command -V dpkg > /dev/null 2>&1
if [ $? -eq 1 ]; then
echo "dpkg käsk ei ole shellile teada. Väljun"
exit 1
#Kontrollime, kas kerneleid on juba 2 või vähem
DPKG_KERNEL_LIST=$(dpkg --list | grep linux-image | awk '{print $3}' | cut -d"." -f4 --complement)
NR_TO_REMOVE=$(echo "$(echo "$DPKG_KERNEL_LIST" | wc -l) - 2" | bc -l)
elif [ $(echo "$(echo "$DPKG_KERNEL_LIST" | wc -l) - 2" | bc -l) -le 2 ]; then
echo "Olemasolevaid kerneli versioone on juba 2 või vähem"
exit 1
else
echo "Kasutan dpkg eemaldust"
for i in $( echo "$DPKG_KERNEL_LIST" | head -$(echo $NR_TO_REMOVE) ); do
echo "apt-get remove linux-image-$i-generic -y"
done
fi
#Anname teada, et kasutaja sisestatud argument ei sobi selle skriptiga
else
echo "$PAKETIHALDUR <--Selline paketihaldur ei sobi. Ainult dpkg või rpm"
exit 1
fi
#Väljastame, mida skript tegi
echo "Skript kustutas kõik vanad kerneli versioonid peale 2 viimase"