mirror of https://github.com/tLDP/LDP
61 lines
1.5 KiB
Bash
61 lines
1.5 KiB
Bash
#!/bin/bash
|
|
# connect-stat.sh
|
|
# Note that this script may need modification
|
|
#+ to work with a wireless connection.
|
|
|
|
PROCNAME=pppd # ppp daemon
|
|
PROCFILENAME=status # Where to look.
|
|
NOTCONNECTED=85
|
|
INTERVAL=2 # Update every 2 seconds.
|
|
|
|
pidno=$( ps ax | grep -v "ps ax" | grep -v grep | grep $PROCNAME |
|
|
awk '{ print $1 }' )
|
|
|
|
# Finding the process number of 'pppd', the 'ppp daemon'.
|
|
# Have to filter out the process lines generated by the search itself.
|
|
#
|
|
# However, as Oleg Philon points out,
|
|
#+ this could have been considerably simplified by using "pidof".
|
|
# pidno=$( pidof $PROCNAME )
|
|
#
|
|
# Moral of the story:
|
|
#+ When a command sequence gets too complex, look for a shortcut.
|
|
|
|
|
|
if [ -z "$pidno" ] # If no pid, then process is not running.
|
|
then
|
|
echo "Not connected."
|
|
# exit $NOTCONNECTED
|
|
else
|
|
echo "Connected."; echo
|
|
fi
|
|
|
|
while [ true ] # Endless loop, script can be improved here.
|
|
do
|
|
|
|
if [ ! -e "/proc/$pidno/$PROCFILENAME" ]
|
|
# While process running, then "status" file exists.
|
|
then
|
|
echo "Disconnected."
|
|
# exit $NOTCONNECTED
|
|
fi
|
|
|
|
netstat -s | grep "packets received" # Get some connect statistics.
|
|
netstat -s | grep "packets delivered"
|
|
|
|
|
|
sleep $INTERVAL
|
|
echo; echo
|
|
|
|
done
|
|
|
|
exit 0
|
|
|
|
# As it stands, this script must be terminated with a Control-C.
|
|
|
|
# Exercises:
|
|
# ---------
|
|
# Improve the script so it exits on a "q" keystroke.
|
|
# Make the script more user-friendly in other ways.
|
|
# Fix the script to work with wireless/DSL connections.
|