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