source: trunk/locker/sbin/rpm-master.sh @ 1655

Last change on this file since 1655 was 1655, checked in by achernya, 11 years ago
Addressed concerns about grep being sloppy, fixed redirects to not clobber stdout and stderr together
  • Property svn:executable set to *
File size: 1.2 KB
Line 
1#!/bin/sh
2
3echo "Entering correct directory..."
4mkdir -p /mit/scripts/cron_scripts/rpm-sync/
5cd /mit/scripts/cron_scripts/rpm-sync/
6
7echo "Cleaning up environment..."
8rm -rf *.rpmlist *.diff rpmlist.master missing.rpms
9
10servers=`finger @scripts-director.mit.edu | grep "\->" | grep EDU | awk '{print $2}' | cut -d: -f1 | sort | uniq`
11
12for server in $servers; do
13    echo "Connecting to $server..."
14    ssh $server /mit/scripts/sbin/rpmlist.sh 2>&1 >&3 | grep -Fxv 'If you have trouble logging in, see http://scripts.mit.edu/faq/41/.' >&2 3>&1
15done
16
17echo "Creating master package list..."
18cat *.rpmlist | sort | uniq > rpmlist.master
19
20echo "Comparing scripts servers to overall rpm list..."
21touch missing.rpms
22for server in *.rpmlist; do
23    diff -U3 $server rpmlist.master > $server.diff
24    serverPretty=`basename $server .rpmlist`
25    echo "Server $serverPretty is missing:" >> missing.rpms
26    grep "^+[^+]" $server.diff | cut -b 1 --complement >> missing.rpms
27    echo >> missing.rpms
28done
29
30if [ `egrep -c -v '(missing)|(^$)' missing.rpms` -gt 0 ]; then
31    echo "Sending email..."
32    cat missing.rpms | mail -s "scripts.mit.edu servers are out of sync" root@scripts.mit.edu
33else
34    echo "No email needs to be sent! scripts.mit.edu is up to date."
35fi
Note: See TracBrowser for help on using the repository browser.