Date: Tue, 9 Jun 1998 15:41:50 -0600 (MDT) From: Atipa <freebsd@atipa.com> To: jktheowl@bga.com Cc: freebsd-stable@FreeBSD.ORG Subject: Re: NIS client maintenance script Message-ID: <Pine.BSF.3.96.980609154028.5230C-100000@altrox.atipa.com> In-Reply-To: <Pine.BSF.3.96.980609145526.5230B-100000@altrox.atipa.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Oops! I posted the wrong script.. :( Download the correct one from ftp://ftp.atipa.com/pub/FreeBSD/nis-client Kevin On Tue, 9 Jun 1998, Atipa wrote: > > Everyone, > > You may find this script to be of use for NIS clients. It can be run from > crontab every minute or so to make sure NIS connections are up and > running. > > It disables NIS authentication during network failures, and > resets and enables NIS if the connection is restored. > > Must be run as root. May work with /bin/sh, but I like bash better. > > WARNING!!! This may modify your /etc/master.password file. If you can not > understand what it does, do not use it! :) > > Kevin > > > ----- > #!/usr/local/bin/bash > > # This script maintains NIS client connections on simple networks > # Rev. 1.0, 05-09-98, Kevin McCarthy (kmcc@atipa.com) > > # It disables NIS authentication during network failures, and resets > # and enables NIS if the connection is restored. > > # User defined variables > nis_host="host.domain.tld" # required > nis_domainname="freakazoid" # required > ypbind_args="-s -ypsetme" # -s for security > ypset_args="$nis_host" # "" for no ypset > > # Clearspace for readability > echo " " > > # Find current state (bool) of NIS > nis_state=`grep + /etc/master.passwd && ps ax |grep yp` > if [ -n "$nis_state" ]; then > echo NIS authentication is ON > else > echo NIS authentication is OFF > fi > > # Set up NIS conditional functions > function nis_down () { > echo "Error: $nis_problem" > > if [ -n "$nis_state"]; then > echo "Disabling NIS authentication" > umask 077 > grep -v + /etc/master.passwd > /root/mp.nonis > mv /etc/master.passwd /etc/master.passwd.nis > mv /root/mp.nonis /etc/master.passwd > pwd_mkdb -p /etc/master.passwd > else > echo "NIS remaining disabled" > fi > > exit 1 > } > > function nis_reset () { > if [ -n "$nis_problem"]; then > echo "Error: $nis_problem" > fi > > echo -n "Resetting NIS services... " > killall ypbind >> /dev/null > domainname $nis_domainname > ypbind $ypbind_args > if [ -n "$ypset_args"]; then > ypset $ypset_args > fi > echo "Done" > > reset_done="true" > } > > function nis_up () { > if [ -z "$nis_state" ]; then > echo "NIS services restored. Enabling NIS authentication" > umask 077 > mv /etc/master.passwd.nis /etc/master.passwd > pwd_mkdb -p /etc/master.passwd > fi > > nis_working="true" > } > > echo -n "Network connecion to $nis_host is " > up=`ping -c1 $nis_host | grep transmitted | awk -F, '{print $2}' \ > | awk '{print $1}'` > if [ "$up" = "1" ]; then > echo ON > else > echo OFF > nis_problem="host not reachable (ping failed)" > nis_down > fi > > while [ -z "$nis_working" ]; do > # Check if NIS is bound > nis_bound=`ypwhich` > > if [ "$nis_bound" = "$nis_host" ]; then > echo NIS binding to $nis_bound is ON > nis_up > else > if [ -z "$reset_done" ]; then > nis_problem="NIS binding to $nis_host is OFF" > nis_reset > else > echo "Reset Failed; disabling NIS services" > nis_down > fi > fi > done > > echo "Exiting" > echo " " > > > To Unsubscribe: send mail to majordomo@FreeBSD.org > with "unsubscribe freebsd-stable" in the body of the message > To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-stable" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.3.96.980609154028.5230C-100000>