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

[Debian]:md5-Summen pruefen (debcheck - Script)



Vielleicht gab's das auch schon.  Aus gegebenen Anlass brauchte ich
sowas.  Es prueft die in /var/lib/dpkg/info/*md5sums hinterlegten
Pruefsummen, nicht mehr und nicht weniger.

    Best regards from Dresden/Germany 
    Viele Gruesse aus Dresden        
    Heiko Schlittermann
-- 
 SCHLITTERMANN --------------------- internet & unix support -
 <a href="http://debian.schlittermann.de/";> Debian 2.x CD </a>
 Heiko Schlittermann HS12-RIPE finger:heiko@schlittermann.de -
 pgp: A1 7D F6 7B 69 73 48 35  E1 DE 21 A7 A8 9A 77 92 -------


#! /usr/bin/perl -w
# (c) Heiko Schlittermann <hs@schlittermann.de>
# Redistribute this freely, but leave 
# the (c)-line intact.

# If you modify the file, please mark this modifications
# as done by you (esp. not me ;-))

use strict;
use File::Basename;

my $ME = basename $0;
my $DBDIR = "/var/lib/dpkg/info";
my $ROOT = "/";

$| = 1;

while (<$DBDIR/*.md5sums>) {
	print STDERR "checking from ", basename $_;

	open(IN, $_ = "<$_") or die "$ME: Can't $_: $!\n";
	while (<IN>) { chomp;
		$. % 10 or print ".";

		my ($md, $file) = (split);
		$file = "$ROOT$file";

		-f $file or do {
			print "\nERROR: not found: $file";
			next;
		};

		open(MD, "-|") or do {
			exec "md5sum", $file;
			die "$ME: exec error (md5sum)\n";
		};
		my $md_ = (split / /, <MD>)[0];
		close(MD) or die "$ME: problem with md5sums: $!\n";
		next if $md eq $md_;
		print "\nERROR: md5: $file";
	}
} continue {
	print "\n";
}

# vim:ts=4:sw=4:aw:ai:

------------------------------------------------
Um sich aus der Liste auszutragen schicken Sie
bitte eine E-Mail an majordomo@jfl.de die im Body
"unsubscribe debian-user-de <deine emailadresse>"
enthaelt.
Bei Problemen bitte eine Mail an: Jan.Otto@jfl.de
------------------------------------------------
Anzahl der eingetragenen Mitglieder:     721


Reply to: