#!/bin/sh ARCH="i686" TMP="/tmp/sync-$ARCH.check" LOCAL="/home/ftp/mirrors/ftp.archlinux.org" ls -1 $LOCAL/$ARCH | while read repo do db="$LOCAL/$ARCH/$repo/$repo.db.tar.gz" if [ -e $db ] then mkdir -p $TMP tar xzf $db -C $TMP ls -1 $TMP | while read package do pkg="$LOCAL/$ARCH/$repo/$package.pkg.tar.gz" if [ -e $pkg ] then hash=`md5sum $pkg | awk '{ print $1 }'` if ! grep -iq $hash $TMP/$package/desc then echo "Package $repo/`basename $pkg` is corrupted" fi else echo "Package $repo/`basename $pkg` is missing" fi done rm -rf $TMP else echo "Database `basename $db` is missing" fi done