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 kasutaja tahab kasutada rpm eemaldust
#Kontrollime, kas RPM käsk on shellile teada
#type rpm > /dev/null 2>&1 || exit 1
elif [ $(echo $PAKETIHALDUR | tr [:upper:] [:lower:]) = "rpm"  ]; then
 
 
command -V rpm > /dev/null 2>&1
        echo "Kasutan rpm eemaldust"
if [ $? -eq 1 ]; then
for i in $( rpm -q kernel | head -$(echo "$(rpm -q kernel | wc -l) - 2" | bc -l) ); do
echo "rpm käsk ei ole shellile teada. Väljun"
rpm -e $i
exit 1
done
#Kontrollime, kas kerneleid on juba 2 või vähem
elif [ $(echo "$(rpm -q kernel | wc -l) - 2" | bc -l) -le 2 ]; then
#Kontrollime, kas kasutaja tahab kasutada dpkg eemaldust
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
   
   
        echo "Kasutan dpkg eemaldust"
#Kontrollime, kas DPKG käsk on shellile teada
for i in $( dpkg --list | grep linux-image | awk '{print $3}'| cut -d"." -f4 --complement | head -$( echo "$(dpkg --list | grep linux-image | awk '{print $3}'| cut -d"." -f4 --complement | wc -w) - 2" | bc -l)); do
#type dpkg > /dev/null 2>&1 || exit 1
apt-get remove linux-image-$i-generic -y
done
command -V dpkg > /dev/null 2>&1
if [ $? -eq 1 ]; then
#Anname teada, et kasutaja sisestatud argument ei sobi selle skriptiga
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 kernelid peale kahe viimase"
 


</source>
</source>

Revision as of 13: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"