Hallo, Am Thu, 12 May 2011, Andre Tann schrieb:
David Haller, Donnerstag 12 Mai 2011:
wie kriegt man die PID eines ssh-Tunnels raus?
$ netstat -p | awk '$NF ~ /ssh/ { sub("/ssh","", $NF); print $NF; }' $ lsof -c ssh | awk '/TCP/{print $2;}'
Wenn man nur einen Tunnel hat. Wenn man aber, wie ich häufig, x Tunnel irgendwohin hat, und nur einen bestimmten killen will?
$ lsof -c ssh | awk '/TCP/ {print $2}' | sort -u | wc -l 11
Schau dir mal die Ausgabe von 'lsof -c ssh | grep TCP' an. Dämmerts? $ host=HOSTNAME[.DOMAIN.TLD] $ lsof -c ssh | awk -F'[> \t]+' -vhost="$host" \ '/TCP/ && $(NF-1) ~ host { print $2; }' Wenn du statt 'print $2' 'print' verwendest siehst du, daß richtig gefiltert wird. Du kannst natürlich -vhost direkt setzen awk -F'[> \t]+' -vhost="foo" \ vom Umquoten des awk-Befehls rate ich ab, das wird schnell häßlich, sobald du z.B. dort Strings verwenden willst: "/TCP/ && $(NF-1) ~ /$host/ { print \"pid of ssh to $host: \" $2 ; }" besonders auch in den Argumenten von sub(), gsub(), gensub() und print[f]. Also lieber per '-v' die Variablen an awk übergeben. -dnh -- Wenn alle Stricke reißen ... da kann man sich nicht mal mehr aufhängen. -- Marc-Uwe Kling, bei Volker Pispers, April 2008 -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org