Kod: Zaznacz cały
#!/bin/bash
#Pass path as an argument to script ./cleaner /path/to/cleaning
#create 124MB filename.gz -> fallocate -l 124M filename.gz
echo "Script for deleting not necessary archived log files."
cd $1
function clearFiles()
{
for directory in *
do
if [ -d "$directory" ] && [ ! -L "$directory" ]
then
cd $directory
x="*.gz"
for plik in $x
do
if [ -e $plik ]
then
echo "LogFile '$plik' exists and can be deleted"
echo "Deleting file $plik":
#rm $plik
echo -ne '## (20%)\r'
sleep 0.5
echo -ne '#### (40%)\r'
sleep 0.5
echo -ne '###### (60%)\r'
sleep 0.5
echo -ne '######## (80%)\r'
sleep 0.5
echo -ne '########## (100%)\r'
echo -ne '\n'
echo -e "$plik deleted \n"
else
echo "I think in $directory currently is nothing to delete."
fi
#clearFiles
done
#clearFiles
cd ..
#clearFiles
else
echo "$directory does not contain any archived file or it's a file."
fi
done
echo "Script is finishing his job."
}
#Call function
clearFiles
Kod: Zaznacz cały
#!/bin/bash
#Script for removing trashes after deinstalled old kernels by apt-get autoremove
function progressBar()
{
echo -ne "Please wait\n"
while true
do
echo -n "#"
sleep 2
done
}
function clearOldKernel()
{
x=$(dpkg --list | grep -i linux-image | grep ^rc | awk '{print $2}')
#if [ ${#x[@]} -gt 0 ]
if [ -z "$x" ]
then
echo "Your system has not any old kernels to deletion."
else
echo "Below is the list of old kernels:"
echo " "
echo "$x"
echo " "
for plik in $x
do
echo "Do you want remove $plik? (answer <yes> or hit enter if not sure)"
read answer
if [ "$answer" = "yes" ]
then
echo "Deleting file $plik":
apt-get --purge remove $plik
echo -e "$plik deleted \n"
else
echo "You wasn't sure you want remove old kernels."
exit 1
fi
done
fi
echo
echo "-------------------------------------------------------------- "
echo "I have done my job, cya later."
}
#Start in background
progressBar &
#Save PID progressBar to variable
MYSELF=$!
#call clearing function
clearOldKernel
#kill progressBar function
kill $MYSELF > /dev/null 2>&1
Natomiast drugi skrypt ma na celu usunięcie śmieci pozostałych po usunięciu starych wersji kernela linuxa. Jest jednak mały "smaczek" - przynajmniej z założenia. Otóż w trakcie usuwania danego "śmiecia" pojawić się powinien pasek postępu, który co 2s dorzuca kolejnego hasha w konsoli. Ciężko opisać co się dzieje i jak to wygląda, więc bardzo będę wdzięczny jeśli po prostu uruchomicie ów skrypt. Możecie zakomentować linię "apt-get --purge remove $plik", aby nic się nie usuwało, a jedynie pojawiły się odpowiednie komunikaty.
Mam też trzeci skrypt, na bazie którego powstał ten do usuwania śmieci po kernelach i tam elegancko działa rysowanie progress bara - również możecie go przetestować tylko funkcji "backup" trzeba zapewnić istniejące (najlepiej większe komendą np. fallocate -l 124M filename.gz) pliki:
Kod: Zaznacz cały
#!/bin/bash
function progress()
{
echo -ne "Please wait\n"
while true
do
echo -n "#"
sleep 3
done
}
function backup()
{
tar -cvf test.tar test >/dev/null 2>&1
}
#Start in background
progress &
#Save progress() PID to variable - need to use the PID to kill the progress func
MYSELF=$!
#Start doing backup - call function
backup
echo
echo "done"
# Kill progress
kill $MYSELF > /dev/null 2>&1