Index: /trunk/locker/sbin/rpm-master.sh
===================================================================
--- /trunk/locker/sbin/rpm-master.sh	(revision 1639)
+++ /trunk/locker/sbin/rpm-master.sh	(revision 1639)
@@ -0,0 +1,35 @@
+#!/bin/bash
+
+echo "Entering correct directory..."
+mkdir -p /mit/scripts/cron_scripts/rpm-sync/
+cd /mit/scripts/cron_scripts/rpm-sync/
+
+echo "Cleaning up environment..."
+rm -rf *.rpmlist *.diff rpmlist.master missing.rpms
+
+servers=`finger @rack-forward | grep "\->" | grep EDU | awk '{print $2"' | cut -d: -f1 | sort | uniq`
+
+for server in $servers; do
+    echo "Connecting to $server..."
+    ssh $server /mit/scripts/locker/sbin/rpmlist.sh > /dev/null
+done
+
+echo "Creating master package list..."
+cat *.rpmlist | sort | uniq > rpmlist.master
+
+echo "Comparing scripts servers to overall rpm list..."
+touch missing.rpms
+for server in *.rpmlist; do
+    diff -U3 $server rpmlist.master > $server.diff
+    serverPretty=`basename $server .rpmlist`
+    echo "Server $serverPretty is missing:" >> missing.rpms
+    grep "^+[^+]" $server.diff | cut -b 1 --complement >> missing.rpms
+    echo >> missing.rpms
+done
+
+if [ `grep -c -v "missing" missing.rpms` -gt 0 ]; then
+    echo "Sending email..."
+    cat missing.rpms | mailx -s "scripts.mit.edu servers are out of sync" root@scripts.mit.edu
+else
+    echo "No email needs to be sent! scripts.mit.edu is up to date."
+fi
Index: /trunk/locker/sbin/rpmlist.sh
===================================================================
--- /trunk/locker/sbin/rpmlist.sh	(revision 1639)
+++ /trunk/locker/sbin/rpmlist.sh	(revision 1639)
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+copyTo='/mit/scripts/cron_scripts/rpm-sync/'
+packages=`mktemp --tmpdir rpmlist.XXXXXX`
+rpm -qa --queryformat '%{NAME}.%{ARCH}\n' | sort | uniq > $packages
+
+host=`hostname`
+extension='.rpmlist'
+file="$copyTo/$host$extension"
+mv $packages $file
