Fórum Ubuntu CZ/SK

Ostatní => Tipy a triky pro Linux => Téma založeno: fish 13 Ledna 2010, 10:38:11

Název: Zmazanie starej verzie kernelu - script
Přispěvatel: fish 13 Ledna 2010, 10:38:11
Už ma nebaví ručne mazať staré verzie kernelu, vyrobil som na to script kernel_del.
Všimol som si že je to častá otázka vo fóre. Tu je script:

Kód: [Vybrat]
#!/bin/bash

#
# Sctipt zmaže vsetky baliky najstaršej verzie kernelu
# created by zaphod
#

# Kolko verzii kernelu chcem mat nainstalovane
nodel=2

# Zoznam verzii kernelu z /boot/vmlinuz*
# cislo verzie sa ziska odrezanim zaciatku a konca nazvu po znak -
cd /boot
index=0
for file in `ls vmlinuz* | sort`
do
  strip1=${file#*-}
  ver[$index]=${strip1%-*}
  (( index += 1 ))
done

# ak je nie je kernel naviac nerob nic
if [ $index -le $nodel ]; then
  echo
  echo "Kernel verzie: ${ver[*]}"
  echo "Mazem ak je pocet verzii kernelu viac ako $nodel"
  exit 2
fi

echo
echo "Kernel verzie: ${ver[*]}"
echo "Zmazem verziu: ${ver[0]}"
echo

# ziskanie nazvov balikov na vymazanie
index=0
for file in `dpkg -l | grep ${ver[0]} | grep ^ii | cut -d ' ' -f 3`
do
  package[$index]=$file
  (( index += 1 ))
done

# mazanie s kontrolnou otazkou
read -n1 -p "Zmazem baliky ${package[*]} (y/n)? "
echo
if [ "$REPLY" == "y" ]; then
  sudo apt-get remove ${package[*]}
else
  echo "Baliky sa nezmazali"
  exit 1
fi

exit 0

Maže najstaršiu verziu kernelu (podľa čísla verzie), všetky balíky ktoré k nemu patria.
Používa bash. Pri spustení v sh nefunguje.
Script vypisuje čo robí, treba ho kontrolovať  ;).

Pre použitie ako príkaz treba uložíť script do $HOME/bin
Kód: [Vybrat]
chmod u+x kernel_del
potom spustiť
Kód: [Vybrat]
kernel_del

alebo spustiť script
Kód: [Vybrat]
bash kernel_del
Název: Re: Zmazanie starej verzie kernelu - script
Přispěvatel: Milhouse 13 Ledna 2010, 11:35:17
A to je problém v terminálu napsat jeden příkaz?:
Citace
sudo aptitude purge linux-image-2[TAB]

Nehledě na to, že ten skript(nejspíš) nemaže závislosti, jako restricted drivers atd.