Hallo, ich hatte Mitte Mai 2011 mit Interesse das Thema "PID eines ssh-Tunnels ermitteln" hier auf der Liste mitverfolgt. Ich bin zu dem Ergebnis gekommen, dass mir der Befehl netstat -p | awk '$NF ~ /ssh/ { sub("/ssh","", $NF); print $NF; }' genau und immer die PID liefert, die ich brauche. Jetzt stehe ich aber vor dem Problem, dass ich diese Ausgabe in einem Skript gern in eine Variable umleiten würde, um damit zu arbeiten. Ich würde mich unheimlich freuen, wenn mir jemand einen Tipp geben kann. Bei der Gelegenheit würde ich mich auch freuen, wenn mir jemand sagen kann, wie ich das Enter-Zeichen ebenfalls weggefiltert bekomme. Im Moment bleibt $MY_PID de facte leer, enthält aber das Zeichen Hexadezimal 0A, was #13 bzw. Enter entspricht. Mein Skript sieht im Moment so aus: #!/bin/bash VAL_USER=alex PID_FILE="/var/run/tunnel.pid" case "$1" in open) if test -e ${PID_FILE}; then echo "Error: Tunnel is already opened." exit 2 fi echo "Tunnel will be opened ..." su -c "ssh -fN -L 3307:127.0.0.1:3306 ssh-xxxxxx-alex@my-domain.de" $VAL_USER MY_PID= netstat -p | awk '$NF ~ /ssh/ { sub("/ssh","", $NF); print $NF; }' if test -n ${MY_PID}; then echo ${MY_PID} > ${PID_FILE} else echo "Error: Tunnel not established." exit 4 fi ;; close) if ! test -e ${PID_FILE}; then echo "Error: No tunnel is opened." exit 3 fi echo "Tunnel will be closed ..." rm ${PID_FILE} ;; status) if test -e ${PID_FILE}; then echo "Tunnel is open (PID "$(< ${PID_FILE})")." else echo "Tunnel is closed." fi ;; *) echo "Usage: $0 {open|close|status}" exit 1 ;; esac Gruß, Alex -- 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
Hallo, Am Wed, 06 Jul 2011, Alex Winzer schrieb:
MY_PID= netstat -p | awk '$NF ~ /ssh/ { sub("/ssh","", $NF); print $NF; }'
MY_PID=$(netstat -p | awk '$NF ~ /ssh/ { sub("/ssh","", $NF); print $NF; }') -dnh -- Wer etwas "Narrensicher" nennt, unterschätzt die Narren. [Ratti in suse-linux] -- 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
Alex Winzer wrote:
ich hatte Mitte Mai 2011 mit Interesse das Thema "PID eines ssh-Tunnels ermitteln" hier auf der Liste mitverfolgt. Ich bin zu dem Ergebnis gekommen, dass mir der Befehl
netstat -p | awk '$NF ~ /ssh/ { sub("/ssh","", $NF); print $NF; }'
genau und immer die PID liefert, die ich brauche. Jetzt stehe
Wenn für dich passt OK. Hier liefert das ca. 15 PIDs!
ich aber vor dem Problem, dass ich diese Ausgabe in einem Skript gern in eine Variable umleiten würde, um damit zu arbeiten. Ich würde mich unheimlich freuen, wenn mir jemand einen Tipp geben kann. Bei der Gelegenheit würde ich mich auch freuen, wenn mir jemand sagen kann, wie ich das Enter-Zeichen ebenfalls weggefiltert bekomme. Im Moment bleibt $MY_PID de facte leer, enthält aber das Zeichen Hexadezimal 0A, was #13 bzw. Enter entspricht.
Hex 0A entspricht Dezimal 10; das ist ein Linefeed und KEIN <carriage return>; das ist der Standard Unix Zeilentrenner.
[...]
MY_PID= netstat -p | awk '$NF ~ /ssh/ { sub("/ssh","", $NF); print $NF; }'
MY_PID=$(netstat -p | awk '$NF ~ /ssh/ { sub("/ssh","", $NF); print $NF; }' ) (umgebrochen wegen der Zeilenlänge) [...] Andreas -- 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
participants (3)
-
Alex Winzer
-
David Haller
-
Kyek, Andreas, VF-DE