no lsof?

cd /proc
 pfiles * | egrep "^[0-9]|sockname" | more
 Or use PCP, found at http://www.unix.ms/pcp/
 #!/usr/bin/ksh
 #
 # PCP (PID con Port)
 # v1.07 20/05/2008 sam@unix.ms
 #
 # If you have a Solaris 8, 9 or 10 box and you can't
 # install lsof, try this. It maps PIDS to ports and vice versa.
 # It also shows you which peers are connected on which port.
 # Wildcards are accepted for -p and -P options.
 #
 # The script borrows from Eric Steed's excellent "getport.sh" script.
 #
 #
 if [ $# -lt 1 ]
 then
 echo >&2 "usage: $0 [-p PORT] [-P PID] [-a ALL ] (Wildcards OK)"
 exit 1
 fi
 while getopts :p:P:a opt
 do
 case "${opt}" in
 p ) port=${OPTARG};;
 P ) pid=${OPTARG};;
 a ) all=all;;
 [?]) # unknown flag
 echo >&2 "usage: $0 [-p PORT] [-P PID] [-a ALL ] (Wildcards OK) "
 exit 1;;
 esac
 done
 shift `expr $OPTIND - 1`
 if [ $port ]
 then
 # Enter the port number, get the PID
 #
 port=${OPTARG}
 echo "PIDtProcess Name and Port"
 echo "_______________________________________________________"
 for proc in `ptree -a | grep -v ptree | awk '{print $1};'`
 do
 263/433
 result=`pfiles $proc 2> /dev/null| grep "port: $port"`
 if [ ! -z "$result" ]
 then
 program=`ps -fo comm -p $proc | tail -1`
 echo "$proct$programt$portn$result"
 echo "_______________________________________________________"
 fi
 done
 elif [ $pid ]
 then
 # Enter the PID, get the port
 #
 pid=$OPTARG
 # Print out the information
 echo "PIDtProcess Name and Port"
 echo "_______________________________________________________"
 for proc in `ptree -a | grep -v ptree | grep $pid| awk '{print $1};'`
 do
 result=`pfiles $proc 2> /dev/null| grep port:`
 if [ ! -z "$result" ]
 then
 program=`ps -fo comm -p $pid | tail -1`
 echo "$proct$programn$result"
 echo "_______________________________________________________"
 fi
 done
 elif [ $all ]
 then
 # Show all PIDs, Ports and Peers
 #
 echo "PIDtProcess Name and Port"
 echo "_______________________________________________________"
 for pid in `ptree -a | grep -v ptree |sort -n | awk '{print $1};'`
 do
 out=`pfiles $pid 2>/dev/null| grep "port:"`
 if [ ! -z "$out" ]
 then
 name=`ps -fo comm -p $pid | tail -1`
 echo "$pidt$namen$out"
 echo "_______________________________________________________"
 fi
 done
 fi
 exit 0

Leave a Reply

Your email address will not be published. Required fields are marked *