sto creando un simulatore locale (non connesso a Internet) tramite la connessione SSH. Ho avviato sshd su un particolare intervallo di numeri di porta e NATing su una gamma di dispositivi. Devo trovare il numero di porta attualmente connesso.Trova il numero di porta attualmente connesso SSH
OS CentOS 5.5 OpenSSH 6.1
ho fatto quanto segue. Funziona per l'uso normale (utente manuale). Ma quando si prova un test rigoroso (automatico) sembra che a volte non riesca a trovare il numero di porta.
#!/bin/bash
WHOINFO=`who -m`
USERNAME=`echo $WHOINFO | awk 'NR==1{print $1}'`
PTSNUMBER=`echo $WHOINFO | awk 'NR==1{print $2}'`
USERSTR=$USERNAME"@"$PTSNUMBER
PID=`ps -eLf | grep $USERSTR | awk 'NR==1{print $3}'`
if [ -z "$PID" ];
then
exit
fi
PORTSTR=`netstat -natp | grep $PID | awk 'NR==1{print $4}'`
PORTNUMBER=${PORTSTR//*:/}
echo $PORTNUMBER
il tuo modello di grep per PID dovrebbe essere '$ PID /', come viene presentato in quella forma nell'output; altrimenti potresti erroneamente abbinare le porte che sono numerate come il 'PID' che stai cercando di abbinare. – Petesh