Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:12.3
netconsole-tools
netconsole-server.sh
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File netconsole-server.sh of Package netconsole-tools
#!/bin/sh # set -x prog=netconsole-server # # initialize the netconsole using reasonable defaults (normally just the # client IP address, and possibly the port. We can determine the MAC # address of the client system, IP address, the correct device, and verify # that we are using an ethernet interface (required for netconsole to work). # # Andreas Dilger <adilger@turbolinux.com> Sep 26, 2001 PATH=$PATH:/sbin:/usr/sbin default_port=6666 src_port= src_ip= dev= tgt_port= tgt_hostname= tgt_ip= tgt_macaddr= verbose= loglevel= usage() { cat - <<- EOF 1>&2 Initialize a network message console over UDP. See /usr/share/doc/packages/netconsole-tools/netlogging.txt for more details usage: $prog [-b] [-d dev] [-m mac] [-p port] target[:port] -v - be verbose, display arp -a, use modprobe -v -n - change loglevel (default: leave it as is) -b - use broadcast ethernet MAC address -m - specify remote system MAC address as 01:23:45:67:89:ab (default: detect) -p - local port to use for message traffic (default: $default_port) -d - ethernet device to use for messages (default: detect) target - hostname/IP address of remote netconsole-client :port - port on target netconsole-client (default: like -p) EOF exit 1 } while [ $# -ge 1 ]; do case $1 in -b) tgt_macaddr=broadcast ;; -d) dev=$2; shift ;; -m) tgt_macaddr=$2; shift ;; -p) src_port=$2; shift ;; -n) loglevel=$2; shift ;; -v) verbose=-v ;; *:*) tgt_hostname=`echo $1 | sed "s/:.*//"`; tgt_port=`echo $1 | sed "s/.*://"` ;; *) tgt_hostname=$1 ;; esac shift done [ -z "$tgt_hostname" ] && usage [ -z "$src_port" ] && src_port=$default_port [ -z "$tgt_port" ] && tgt_port=$src_port ping -c 1 $tgt_hostname > /dev/null 2>&1 [ $? -ne 0 ] && echo "$prog: can't ping $tgt_hostname" 1>&2 && usage # output from arp -a of the form: # good: host.domain (A.B.C.D) at 00:50:BF:06:48:C1 [ether] on eth0 # bad: ? (A.B.C.D) at <incomplete> on eth0 if [ "$verbose" != "" ] ; then arp -a | grep $tgt_hostname fi arp -a | grep $tgt_hostname | { read HOSTNAME IPADDR AT MACADDR TYPE ON IFACE; [ "$HOSTNAME" = "?" -a -z "$tgt_macaddr" -a "$tgt_macaddr" != "broadcast" ] && \ echo "$prog: can't resolve $tgt_hostname MAC" 1>&2 && usage [ -z "$tgt_macaddr" ] && tgt_macaddr=$MACADDR [ -z "$dev" ] && dev=$IFACE [ "$dev" = "$IFACE" -a "$TYPE" != "[ether]" ] && \ echo "$prog: $dev must be an ethernet interface" 1>&2 && usage src_ip=`ip -family inet -oneline addr show dev $dev | sed 's@^.*inet \([^/]\+\).*@\1@'` tgt_ip=`echo $IPADDR | sed -e "s/[()]//g"` if [ "$tgt_macaddr" = "broadcast" ]; then tgt_macaddr= fi /sbin/modprobe $verbose netconsole netconsole="${src_port}@${src_ip}/${dev},${tgt_port}@${tgt_ip}/${tgt_macaddr}" if [ "$?" = 0 ] ; then if [ "$verbose" != "" ] ; then echo fi if [ "$loglevel" = "" ] ; then echo "verify the loglevel. otherwise no message may appear on the remove host, see man dmesg(1)" else echo "setting loglevel to $loglevel via 'dmesg -n $loglevel'" dmesg -n $loglevel fi echo "now run 'netcat -l -u -p $tgt_port' on host $tgt_ip to see further kernel messages" fi }
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor