-2

次のコマンドを使用します。

sudo netstat -tnp | grep sshd

出力は次のとおりです。

tcp        0      0 192.201.0.8:22          192.201.0.90:2690       ESTABLISHED 1866/sshd: yang [pr

それより、次のコマンドを使用します。

$ echo -n "sshd Port&&pid: " ; sudo netstat -tnp | grep sshd | awk '{print $4, $7}' | sed -r 's/^[^:]*:([a-z]*)/\1/g'

出力は次のとおりです。

sshd Port&&pid: 22 1866/sshd:

最後に、次のコマンドを使用します。

$ echo -n "sshd Port&&pid: " ; sudo netstat -tnp | grep sshd | awk '{print $4, $7}' | sed -r 's/^[^:]*:([a-z]*)/\1/g; s/([0-9]*)\/sshd:$/\1/g'

出力は次のとおりです。

sshd Port&&pid: 22 1866

私は自分の問題を解決しましたが、それを行うためのより良い方法はありますか?

別の答え:

$ sudo netstat -anp | grep "sshd" | grep -v "\]" | sed -r 's/.*:([0-9]+).* ([0-9]*)\/.*$/sshd Port\&\&pid: \1 \2/' | sort | uniq
4

2 に答える 2

1

例えば:

$ echo foo/bar | sed 's,/.*,,'
foo
$
于 2013-04-08T02:38:43.913 に答える
1

あなたは問題を考えすぎています:

netstat -anp | awk -F"[: /]" '/sshd/{printf "sshd Port&&pid: %s %s\n", $5,$9 }'
sshd Port&&pid: 22 1866

つまり、これは私のマシンで機能しますが、netstats の出力は異なる場合があります。

于 2013-04-08T02:41:09.507 に答える