Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[Script] Controllo coerenza pacchetti.
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian)
View previous topic :: View next topic  
Author Message
to.alex
n00b
n00b


Joined: 08 Apr 2007
Posts: 67

PostPosted: Mon Oct 15, 2007 6:22 pm    Post subject: [Script] Controllo coerenza pacchetti. Reply with quote

Lo script necessita di equery e eix, quindi dei pacchetti gentoolkit e eix.

In pratica viene generata una lista di tutti i pacchetti installati sul sistema, e per ognuno di essi viene eseguito equery check nomepacchetto. Se vengono individuati errori nel pacchetto (purtroppo equery restituisce sempre 0 come stato di uscita, e quindi mi sono dovuto arrangiare in altro modo) viene registrato l'output su file (my-syscheck.log).

Eccolo qua:

Code:
#!/bin/bash
if [ $# -eq 1 ]; then
   startpackage=$1
   start=0
else
   start=1
fi

echo "$(basename $0) - Started at $(date)" >> my-syscheck.log
for package in $(eix -I --only-names) ; do
   if [ $start -eq 1 ]; then
      result=$(equery k "$package" 2>&1 )
      echo -n "$package ... "
      if [ -z "$( echo "$result" | sed -ne "/ \* \([[:digit:]]\+\) out of \1 file[s]* good/p" )" ]; then
         echo "$result
" >> my-syscheck.log
         echo "NOT OK!"
      else
         echo "ok."
      fi
   elif [ "$startpackage" == "$package" ]; then
      start=1
   fi
done
echo "$(basename $0) - End at $(date)" >> my-syscheck.log


--- Edit ---
Ho fatto qualche modifica (c'era un grossolano errore che avevo introdotto per abbellire l'output a video).
Ah, una piccola feature che mi sono dimenticato di documentare: se si passa come argomento il nome completo di un pacchetto (ad esempio sys-devel/binutils) il controllo verrà effettuato dal pacchetto successivo a quello indicato (la lista restituita da eix è ordinata alfabeticamente).


Last edited by to.alex on Mon Oct 15, 2007 8:38 pm; edited 3 times in total
Back to top
View user's profile Send private message
Kernel78
Moderator
Moderator


Joined: 24 Jun 2005
Posts: 3652

PostPosted: Mon Oct 15, 2007 7:06 pm    Post subject: Reply with quote

Scusa ma non colgo l'utilità pratica ... equery check mi segnala problemi per circa il 50% dei pacchetti che ho installato, per togliermi lo sfizio ho provato a ricompilare logrotate ma ha continuato a segnalarmelo non ok (anche se solo per un md5sum su un file di configurazione).
_________________
Le tre grandi virtù di un programmatore: pigrizia, impazienza e arroganza. (Larry Wall).
Prima di postare un file togli i commenti con
Code:
grep -vE '(^[[:space:]]*($|(#|!|;|//)))'
Back to top
View user's profile Send private message
to.alex
n00b
n00b


Joined: 08 Apr 2007
Posts: 67

PostPosted: Mon Oct 15, 2007 7:31 pm    Post subject: Reply with quote

Beh, si in effetti parlare di errori non è sempre corretto. Mi spiego.
Se controllo un pacchetto che ha file che ho modificato (ad esempio configurazioni in /etc come sicuramente ti sarà capitato con logrotate), oppure dei file py che poi generano dei pyc e/o pyo, e questi mi vengono segnalati come errori, è quasi sempre normale.

Se invece controllo, che so, procps e mi viene rilevato che /bin/ps è stato modificato rispetto a quando è stato compilato, allora potrei avere qualche problema nel sistema. Poi scoprire quale è il problema è un'altra questione, ma intanto ho scovato qualcosa.

A me è servito a scoprire che avevo un ebuild scritto male (da me) che disseminava file in posti sbagliati (e che poi venivano cancellati e/o sovrascritti da altro) e due pacchetti in degli slot non più mantenuti (uno era wxGTK 2.4.x, l'altro non me lo ricordo). Non molto, in effetti.

Poi, più che altro mi è servito ad avere qualcosa da fare in un week-end di febbre e mal di denti :roll:

L'ho creato comunque per un preciso motivo: in ufficio ho una OpenSuSE su un Lenovo, e ogni tanto questo benedetto PC decide che non ha voglia di accendersi, bloccandosi durante il boot. Inutile dire che l'unica è sempre stata, purtroppo, un bel reset hardware e il file system ogni tanto ne ha risentito. Prima o poi me lo cambieranno. Nel frattempo però, quando succede, controllo che la firma md5 e tutti gli altri dati registrati da RPM, siano coerenti con i file presenti sul sistema, in modo da controllare se si è spu....ano tutto. L'ultima volta mi è toccato reinstallare il kernel perché la metà dei moduli era stata segata via da fsck.
Li in ufficio ho automatizzato la procedura con uno script BASH simile, e volevo qualcosa di simile anche sulla mia Gentoo qui a casa.
Per carità, il PC non mi da noie, ma io ogni tanto sperimento, e non si sa mai...
E poi può essere anche usato, (molto) impropriamente, anche come anti-virus/anti-rootkit (credo).
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum