31 lines
1018 B
Bash
31 lines
1018 B
Bash
#!/bin/sh
|
|
# This script is useful to check whether an interface is up and,
|
|
# if not, it attempts to bring it back. This can be necessary
|
|
# if your ISP provider causes occasional outages.
|
|
# Some ISPs are known to termine connections when they reach
|
|
# 24 hours to "prevent abuse".
|
|
# Run this script through cron (every 5 minutes? your call)
|
|
# and ensure that ifstate is located where it is defined below.
|
|
#
|
|
# NOTE: This script is just provided as an example. If you want this
|
|
# feature you might be better off installing ifplugd which provides
|
|
# similar functionality (but more featureful) out of the box.
|
|
|
|
# TODO:
|
|
# Improve it so it can find out (eg from /run/network/ifstate)
|
|
# whether an interface was brought down
|
|
# unexpectedly, or if a clean "ifdown" was issued.
|
|
|
|
iface="$1"
|
|
ifstate=/usr/local/sbin/ifstate
|
|
|
|
if [ `$ifstate "$iface"` = DOWN ]
|
|
then
|
|
logger -s "Trying to bring $iface back up..."
|
|
ifdown "$iface"
|
|
ifup "$iface"
|
|
[ `$ifstate "$iface"` = UP ] && logger -s "$iface now up again"
|
|
fi
|
|
|
|
exit 0
|