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

Last change on this file since 2775 was 2274, checked in by achernya, 12 years ago
Set locale to C so sort produces consistent results for rpm-sync
  • Property svn:executable set to *
File size: 1.2 KB
RevLine 
[1640]1#!/bin/sh
[1639]2
[2274]3export LC_ALL=C
4
[1639]5echo "Entering correct directory..."
6mkdir -p /mit/scripts/cron_scripts/rpm-sync/
7cd /mit/scripts/cron_scripts/rpm-sync/
8
9echo "Cleaning up environment..."
10rm -rf *.rpmlist *.diff rpmlist.master missing.rpms
11
[1641]12servers=`finger @scripts-director.mit.edu | grep "\->" | grep EDU | awk '{print $2}' | cut -d: -f1 | sort | uniq`
[1639]13
14for server in $servers; do
15    echo "Connecting to $server..."
[1657]16    { 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/.'; } 3>&1 >&2
[1639]17done
18
19echo "Creating master package list..."
20cat *.rpmlist | sort | uniq > rpmlist.master
21
22echo "Comparing scripts servers to overall rpm list..."
23touch missing.rpms
24for server in *.rpmlist; do
25    diff -U3 $server rpmlist.master > $server.diff
26    serverPretty=`basename $server .rpmlist`
27    echo "Server $serverPretty is missing:" >> missing.rpms
28    grep "^+[^+]" $server.diff | cut -b 1 --complement >> missing.rpms
29    echo >> missing.rpms
30done
31
[1643]32if [ `egrep -c -v '(missing)|(^$)' missing.rpms` -gt 0 ]; then
[1639]33    echo "Sending email..."
[1640]34    cat missing.rpms | mail -s "scripts.mit.edu servers are out of sync" root@scripts.mit.edu
[1639]35else
36    echo "No email needs to be sent! scripts.mit.edu is up to date."
37fi
Note: See TracBrowser for help on using the repository browser.