erlug
[Top] [All Lists]

Re: [Erlug] Controllo delle modifiche al sistema

To: erlug@xxxxxxxxxxxxxx
Subject: Re: [Erlug] Controllo delle modifiche al sistema
From: Alessandro Ronchi <ronchi@xxxxxxxxxxxx>
Date: Thu, 23 Jan 2003 20:07:08 +0100
Alle 17:28, giovedì 23 gennaio 2003, erlug-request@xxxxxxxxxxxxxx ha scritto:

> La tua missione, se deciderai di accettarla, e` scrivere uno script
> che faccia il confronto con cio` che hai sul filesystem.

Grazie ai tuoi consigli, ho deciso di fare il mio primo script bash, scartando 
il pitone benché convinto della sua validità.

Sono arrivato allo scrippettino in calce.
Com'è ovvio, non funziona. In particolare la parte "find / > file.list" non 
produce una lista completa dei file del fs, ed ovviamente lo script ritorna 
più file rimossi di quelli che lo sono in realtà.
Ho pensato che sia un limite del buffer per la ridirezione dell'output, ma mi 
pare molto strano.
Dove sbaglio? a voi l'ardua sentenza...
------------------------------------------------------------------------------
#!/bin/bash
where=`pwd`
# Whe get the list of the files into the filesystem
find / > file.list

# We exlude the paths listed into exclude.list
exclude=`cat exclude.list`
for x in exlude; do
        cat file.list | grep -v $x > file.list
done

# Deleting the old temp files:
rm deb.list
rm fileadded.list

cp file.list fileadded.list
touch fileremoved.list

# We get all the file list of installed deb packages
find /var/lib/dpkg/info/ -name "*.list" > deb.list
find /var/lib/dpkg/info/ -name "*.conffiles" >> deb.list
deblist=`cat deb.list`


for i in $deblist ; do
        echo Parsing deb package $i
        echo "++++++++++++++++++++" >> fileremoved.list
        echo $i >> fileremoved.list
        packagefiles=`cat $i`
        for j in $packagefiles ; do
                cat fileadded.list | grep "^$j$"
                if [ $? == 0 ]; then
                        cat fileadded.list | grep -v "^$j$" > fileadded.list
                        echo "!!!!!!!!!!!!!!!!!!!!!!!!"
                else
                        echo $j >> fileremoved.list
                        echo "File removed:"
                        echo $j;
                fi
        done
done


------------------------------------------------------------------------------

-- 
Alessandro Ronchi,
http://students.csr.unibo.it/~ronchi

<Prev in Thread] Current Thread [Next in Thread>