On Wed, Aug 22, 2001 at 07:36:26AM +0200, Joerg Desch wrote:
> On Tue, 21 Aug 2001 17:36:17 +0200 Jens Benecke <jens@jensbenecke.de>
> wrote:
>
> Hi Jens,
moin :)
> > Wenn dir der Platz nicht zu wertvoll ist: einfach drübermounten. [...]
> Das ist natürlich auch eine gute Idee! Das das ganze funktieren kann,
> wenn der mount beim Hochfahren nicht klappt, kann ich mir erklären. Was
> ist aber, wenn der NFS mount schon mal geklappt hat, und der Server
> wirklich ausfällt? Kommt es dann automatisch zu einem umount, so daß das
> lokale /usr wieder aktiviert wird?
Nein. Schreib einen daemon, der den NFS Server anpingt oder sowas, und beim
Ausfallen einen 'umount -f' macht. (umount -f geht AFAIK NUR bei NFS)
> > Ich mache das hier einfacher ... ich installieren einen 'master client'
> > und synche dann _alle_ 'slave clients' _komplett_ mit rsync - bis auf
> > ein paar kritische rechnerspezifische Dateien (wie /etc/hosts usw).
> Wo klingst Du das sync-script ein? Beim PowerUp, per cron, ...?
Gar nicht, wird manuell gestartet. Daher 'halbtautomatisch'.
> Wenn's nicht zu unverschämt ist, könntest Du mir das Script mal mailen?
Es haben jetzt schon mehrere per eMail gefragt, ich poste es einfach mal.
AUSNAHMSWEISE. :)
--
Jens Benecke ········ http://www.hitchhikers.de/ - Europas Mitfahrzentrale
MSTD, n: MicroSoft Transmitted Disease. Propagates only due to Microsoft's
insistence on distributing [software] that resembles Petri dishes.
See also ILOVEYOU, Melissa, Code Red, Sircam, IIS.
-- http://www.everything2.com/index.pl?node=MSTD
#!/bin/bash
#
# Bei allen erreichbaren Rechnern das als $1 übergebene Verzeichnis
# synchronisieren, wobei /home/.r/rsync-exclude als Exclude-Liste beachtet
# wird.
# -- Jens Benecke <linux-ag@jensbenecke.de>
# ChangeLog:
# 1.0 Erste Version.
# 1.1 Angepaßt auf feste Hostnamen != feste IPs (/etc/sysconfig/network wird
# nicht gesynct, dafür feste Hostnamen).
#
#
# ENGLISH INSTALL HINTS:
#
# - adopt your path settings (exclude-file etc.)
# - make sure rsync and ssh is installed on all clients, the sync only works
# if those are present and working. YOU NEED NMAP for the MASTER client if
# you want to figure out which IPs to sync automatically.
# - for each "slave client", as root, do the following:
# cat /root/.ssh/identity.pub | ssh $client "cat >> /root/.ssh/authorized_keys"
# this will let "ssh masterclient->slaveclient" work without password,
# necessary for the sync process.
#
LOG="rsync-`date '+%y%m%d'`.log"
OWN_IP="`ifconfig eth0 | grep addr: | awk '{print $2;}'| cut -d: -f2`"
SERVER="192.168.2.1" # don'T touch the server, just the workstations
if test "$1" == ""; then echo "Syntax: $0 [-n] <Verzeichnis>"; exit; fi
# "-n" = test mode, don't DO anything just pretend. (dry run)
if test "$1" == "-n" ; then N=-n ; DIR=$2
else unset N ; DIR=$1; fi
echo
EXCL=rsync-exclude
IPS="`nmap -sP 192.168.2.0/24 -n -m -|grep "Up$" | awk '{print $2;}'`"
IPS="`echo $IPS | sed s/$OWN_IP// | sed -e s/$SERVER//`"
# falls eine kiste gerade windoof fährt, antwortet sie auf rsync sowieso nicht
echo -n "Ich starte jetzt Synchronisation für $IPS:"
echo
echo rsync -ve ssh -va $N --delete --exclude-from=$EXCL $DIR "root@(IP)":$DIR
echo
echo -n "Taste ..."
read XYZ
echo --------------------------------------------------------------------------
for IP in $IPS ; do
# test "$IP" == "192.168.2.61" && N="$N --exclude=/etc/printcap"
echo ; echo
echo rsync -e ssh -va $N --delete --exclude-from=$EXCL $DIR root@$IP:$DIR
echo
echo >> $LOG
echo "---------- $IP --------------------------------------" >> $LOG
rsync -e ssh -va $N --delete --exclude-from=$EXCL $DIR root@$IP:$DIR \
&& SUCC="$SUCC $IP" 2>&1 | tee -a $LOG
# muss, weil /boot auch gesyncht wird (ggf. neuer kernel)
ssh $IP lilo
done
echo --------------------------------------------------------------------------
echo "Sync für die Rechner $SUCC durchgeführt."
rm -fv $PWFILE
Attachment:
pgpQPtarpREOW.pgp
Description: PGP signature