Code: Select all
#!/bin/bash
# Questo script permette di eseguire l'autoaggiornamento del sistema e crea gli elenchi
# di pacchetti: nuovi, rimossi, aggiornati; e anche l'elenco pacchetti stato iniziale e
# finale dei pacchetti installati rispettivamente all'aggiornamento.
# Visualizza infine le differenze di versione dei pacchetti installati.
echo
echo $0
echo "------------------------------"
echo " A U T O U R P M I "
echo " di Roberto_65"
echo "------------------------------"
echo
echo "-------------------------------------------"
echo "Elimino vecchi files di liste precedenti..."
echo "-------------------------------------------"
rm -rf /autourpmi_log
mkdir -p /autourpmi_log
cd /autourpmi_log
# Lista situazioe pacchetti prima di eseguire l'aggiornamento:
echo "-----------------------------------------------"
echo "Scrivo Lista pacchetti situazione precedente..."
echo "-----------------------------------------------"
rpm -qa | sort > /autourpmi_log/pkg_prima
# Esegue l'aggiornamento:
echo "-------------------------------------------------------------------------"
echo "ATTENDERE: Aggiornamento database RPM + pacchetti installati in corso...."
echo "-------------------------------------------------------------------------"
ag=$1
if ! [ $ag ]; then
urpmi --auto-update --auto --force
else
urpmi --auto-select --auto --force
fi
# Lista situazione pacchetti dopo l'aggiornamento:
echo "---------------------------------------------------------"
echo "Scrivo Lista pacchetti situazione dopo l'aggiornamento..."
echo "---------------------------------------------------------"
rpm -qa | sort > /autourpmi_log/pkg_dopo
diff -a /autourpmi_log/pkg_prima /autourpmi_log/pkg_dopo > /autourpmi_log/pkg_diff1
# Lista pacchetti nuovi:
echo "------------------------------------------------------"
echo "Scrivo Lista pacchetti nuovi: /autourpmi_log/pkg_nuovi"
echo -"-----------------------------------------------------"
date > /autourpmi_log/pkg_nuovi
echo "----------------" >> /autourpmi_log/pkg_nuovi
echo "PACCHETTI NUOVI:" >> /autourpmi_log/pkg_nuovi
echo "----------------" >> /autourpmi_log/pkg_nuovi
grep -i '>' /autourpmi_log/pkg_diff1 > /autourpmi_log/pkg_nuo
cat /autourpmi_log/pkg_nuo | cut -d '>' -f2 >> /autourpmi_log/pkg_nuovi
# Lista pacchetti rimossi:
echo "-----------------------------------------------------------"
echo "Scrivo Lista pacchetti rimossii: /autourpmi_log/pkg_rimossi"
echo "-----------------------------------------------------------"
date > /autourpmi_log/pkg_rimossi
echo "------------------" >> /autourpmi_log/pkg_rimossi
echo "PACCHETTI RIMOSSI:" >> /autourpmi_log/pkg_rimossi
echo "------------------" >> /autourpmi_log/pkg_rimossi
grep -i '<' /autourpmi_log/pkg_diff1 > /autourpmi_log/pkg_rimo
cat /autourpmi_log/pkg_rimo | cut -d '<' -f2 >> /autourpmi_log/pkg_rimossi
# Lista pacchetti aggiunti:
echo "----------------------------------------------------------------"
echo "Scrivo Lista pacchetti aggiornati: /autourpmi_log/pkg_aggiornati"
echo "----------------------------------------------------------------"
diff -a /autourpmi_log/pkg_nuo /autourpmi_log/pkg_rimo > /autourpmi_log/pkg_diff2
date > /autourpmi_log/pkg_aggiornati
echo "-----------------------------" >> /autourpmi_log/pkg_aggiornati
echo "PACCHETTI AGGIORNATI E NUOVI:" >> /autourpmi_log/pkg_aggiornati
echo "-----------------------------" >> /autourpmi_log/pkg_aggiornati
grep -i '< >' /autourpmi_log/pkg_diff2 > /autourpmi_log/pkg_aggio1
cat /autourpmi_log/pkg_aggio1 | cut -d '<' -f2 > /autourpmi_log/pkg_aggio2
cat /autourpmi_log/pkg_aggio2 | cut -d '>' -f2 >> /autourpmi_log/pkg_aggiornati
# Lista differenze su 2 colonne:
echo "----------------------------------------------------------------"
echo "Scrivo Lista pacchetti differenza: /autourpmi_log/pkg_differenza"
echo "----------------------------------------------------------------"
diff -y /autourpmi_log/pkg_nuovi /autourpmi_log/pkg_rimossi > /autourpmi_log/pkg_differenza
# Elimina files di lavoro:
echo "--------------------------"
echo "Elimino files di lavoro..."
echo "--------------------------"
rm /autourpmi_log/pkg_diff1
rm /autourpmi_log/pkg_diff2
rm /autourpmi_log/pkg_aggio1
rm /autourpmi_log/pkg_aggio2
rm /autourpmi_log/pkg_nuo
rm /autourpmi_log/pkg_rimo
echo "" >> /autourpmi_log/pkg_differenza
echo "" >> /autourpmi_log/pkg_differenza
echo "Premi il tasto [Q] per uscire - [CURSORI] per scorrere." >> /autourpmi_log/pkg_differenza
echo "----------------------------------------------------------------------------------------" >> /autourpmi_log/pkg_differenza
echo "Create liste:" >> /autourpmi_log/pkg_differenza
echo " /autourpmi_log/pkg_prima (situazione prima di eseguire l'aggiornamento)." >> /autourpmi_log/pkg_differenza
echo " /autourpmi_log/pkg_differenza (Lista delle differenze come sopra)." >> /autourpmi_log/pkg_differenza
echo " /autourpmi_log/pkg_aggiornati (Lista solo pacchetti aggiornati)." >> /autourpmi_log/pkg_differenza
echo " /autourpmi_log/pkg_rimossi (Lista solo pacchetti rimossi)." >> /autourpmi_log/pkg_differenza
echo " /autourpmi_log/pkg_dopo (situazione dopo l'aggiornamento)." >> /autourpmi_log/pkg_differenza
echo "Le liste create si trovano in /autourpmi_log" >> /autourpmi_log/pkg_differenza
echo "----------------------------------------------------------------------------------------" >> /autourpmi_log/pkg_differenza
echo
echo -n "Premi un tasto..." && read
clear
cat /autourpmi_log/pkg_differenza | less
exit 0