On Sunday 22 April 2007 19:16, Steve Siegfried wrote: > Nigel Henry wrote: > > On Sunday 22 April 2007 18:19, Scott Berry wrote: > > > Nigel, what would you want to ping? I think you could put a line in > > > that script to do that. > > > > > > Scott > > > > Pinging a server on the Internet isn't really the problem, as long as > > nobody get's T'd off on getting a ping on a daily basis. All I want is a > > script that will continually send a ping to <some server>, then when the > > Internet connection is up, and it gets a positive response from the > > server, will then run /usr/local/bin/ntp-restart, and terminate the ping. > > This will then restart the ntp daemon, and all of the servers listed in > > /etc/ntp.conf will be polled. > > > > At the moment when the ntp daemon is started at bootup on FC2, I get > > varying results. Post bootup I connect to the Internet, and sometimes > > just one of the six timeservers is listed when running ntpq> pe, and > > sometimes 4 of the timeservers are listed, but never the 6. If I do an > > /etc/init.d/ntpd stop, followed by an /etc/init.d start, then run ntpq, I > > see all 6 Internet timeservers listed. > > > > There is a problem with the ntp daemon, at least on FC2, when no Internet > > connection is available at bootup. > > > > Nigel. > > You can probably do this without pinging. > > Assuming you talk to the outside internet via eth0, then "ifconfig eth0" > won't tell you what your ip-address is until eth0 is all the way up. > > Thus, the following script will either: > - print your ip-address and return 0 (success), > or > - print "eth0 not active." and return 1 (failure). > > > #!/bin/ksh > > DEVICE=${1:-eth0} > > if [ `/sbin/ifconfig | grep ^$DEVICE | wc -l` = 0 ] > > then echo "$DEVICE not active." > > exit 1 > > else mungeline=`/sbin/ifconfig $DEVICE | grep "inet addr" | tr -s ":" > > " " | cut -d' ' -f4` echo $mungeline > > exit 0 > > fi > > Hope this helps, > > -S This is my setup. I have 2 machines on a LAN. These access the Internet through a Smoothwall firewall, which is installed on an old machine. The Smoothwall accesses the Internet through a serial modem. To connect to Internet I have to have one of the machines on the LAN booted up, so as access the web interface to the Smoothwall. So this is the way it goes. The Smoothwall is left running continually, but I shut down the dialup connection, and the 2 machines on the LAN last thing at night, unless I'm doing updates. Next day. Smoothwall is still running, but no connection to the Internet. Next I boot the machine on the LAN that has the Internet timeservers listed in /etc/ntp.conf. The machine boots up (this is FC2) , but because no Internet connection is available the ntpd times out, goes out to lunch, gives up trying to contact the timeservers, whatever. Post boot up, and running ntpq> pe, sometimes there is 1 of the 6 timeservers showing, and sometimes 4 of the 6. If I now stop and start ntpd all 6 of the timeservers are listed when running ntpq> pe. So, and this is a problem with ntpd on FC2. On FC6 ncpd seems to handle an ititial "no Internet connection available" ok, and when I make the connection to the Internet all the timeservers are listed on ntpq> pe. Back to the FC2 problem. Smoothwall is running, but dialup connection is down. Boot up the machine on the LAN that has the Internet timeservers in /etc/ntp.conf. Ntpd is started on bootup, but can't find the timeservers, as there is no Internet connection, so ntpd decides to go out to lunch. The sort of script that I'm looking for is one that will be either run from /etc/rc.d/rc.local, but without delaying, hanging, stalling the bootup sequence, or being run post bootup as root. A cron job won't do this, as it runs at a specific time. This script needs to be run either during, or post bootup. So this is the script I need. Either started with /etc/init.d/rc.local. or post boot up Ping an Internet address every minute. When a response is received showing an active Internet connection, then run /usr/local/bin/ntp-restart. Perhaps I'm asking too much. Nigel.