[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[bash-frage] Re: alle nicht-debian files auflisten



On 14/08/2004 Sven Bergner wrote:
> On Sat, Aug 14, 2004 at 03:07:00AM +0200, Jonas Meurer wrote:
> > allerdings schließt das von maintainer scripts installierte dateien
> > (manche konfigurations dateien, oder auch andere) aus, listet sie also
> > auch, da sie nicht in /var/lib/dpkg/info/*.list auftauchen.
> > 
> > irgendwelche ideen, wie ich das problem angehen könnte, auch solche
> > dateien rauszufiltern?
> 
> Ich würde diese Dateien nicht ausfiltern, da sie eventuell von Dir
> geänderte Konfigurationen enthält. Also durchaus Dinge, die ich mir
> nicht alle merken möchte.
> Ausserdem dürften das doch alles reine Textdateien sein, die sich
> zudem auch noch extrem gut komprimieren lassen.

naja, leider sind das doch auch sehr viele dateien, die nicht wirklich
relevant sind (für backups), und dennoch viel platz wegnehmen.

zum beispiel /etc/gconf/, /var/lib/dpkg, /var/cache/debconf, ...

prinzipiell hast du allerdings recht, ich sollte nicht alle diese
dateien ausschließen. lieber erweitere ich mein script, einige
konfigurierte verzeichnisse, dateien auszulassen.

aber dabei habe ich folgendes problem:
bisher listet mein script nur dateien, das heißt, wenn zum beispiel
/etc/mozilla komplett nicht von debian packeten installiert wurde,
so wird jede datei einzeln in /tmp/new-files angezeigt:

| cat /var/lib/dpkg/info/*.list | while read f; do
|   [ -f "$f" ] && echo "$f" ;
| done | sort >/tmp/debian-files

listet alle von debs installierten dateien nach /tmp/debian-files

ich könnte also mit 
| cat /var/lib/dpkg/info/*.list | while read f; do
|   [ -f "$f" ] && echo "$f" > /tmp/tmp-files ;
|   [ -d "$f" ] && echo "$d" > /tmp/tmp-dirs ;
| done
| cat /tmp/tmp-files | sort > /tmp/debian-files
| cat /tmp/tmp-dirs | sort > /tmp/debian-dirs

zusätzlich noch alle debian direcories auflisten, das gleiche mit system
dirs machen:
 
| mount | awk '! /type (proc|sysfs|devpts|usbfs|binfmt_misc)/ { print $3 }' | \
|                 xargs -i'#' find '#' -xdev -type f -o -type l | \
|                 grep -v "^/dev" | grep -v "^/.dev" | sort > /tmp/system-files
| mount | awk '! /type (proc|sysfs|devpts|usbfs|binfmt_misc)/ { print $3 }' | \
|                 xargs -i'#' find '#' -xdev -type d | \
|                 grep -v "^/dev" | grep -v "^/.dev" | sort > /tmp/system-dirs

new-dirs genauso wie new-files erstellen:

| sort -m /tmp/system-files /tmp/debian-files | uniq -u >/tmp/new-files
| sort -m /tmp/system-dirs /tmp/debian-dirs | uniq -u >/tmp/new-dirs

und schlussendlich alle new-dirs aus den new-files raus-greppen:

| cat /tmp/new-dirs | while read dir; do
|   cat /tmp/new-files | grep -v $dir > /tmp/new-files
| done


wie mir wohl einige zustimmen werden, ist das allerdings eine sehr
komplizierte und verworrene lösung. hat jemand eine idee, wie ich das
besser lösen könnte?

bye
 jonas



Reply to: