Связано:
Идея заключается в том, что вы создаете цикл перенаправления, но на самом деле это не так. , так как есть разница между внешними и внутренними перенаправлениями, поэтому цикл не является замкнутым, потому что одно перенаправление явно только внешнее, а другое явно только внутреннее:
location = / {
if ($arg_site) {
return 302 /$arg_site;
}
return 200
"site
\n";
}
location / {
rewrite ^/([^/]*)\$ /?site=$1 break;
proxy_pass http://javabackend:8080;
}
Другой способ - использовать netstat
и awk
. Предполагая, что вы используете порт 22 для протокола ssh
:
netstat -putan | awk '/:22 / && /ESTABLISHED/ {split($5,result,":"); print result[1]}'
Оно доступно как часть переменной среды SSH_CLIENT
:
$ echo "$SSH_CLIENT"
SSH_CLIENT=192.168.0.101 39323 22
$ echo "$SSH_CLIENT" | cut -d' ' -f 1
192.168.0.101
Для всех пользователей попробуйте
w --no-header | awk '{print $1" "$3}'
Вкратце
w -h | awk '{print $1" "$3}'
Там вы можете grep для имени пользователя. Имейте в виду, что пользователь может входить в систему несколько раз и из разных мест / IPS. Вы также хотите проверить, можете ли вы заставить w-команду выводить IP вместо имен хостов (зависит от версии -n или -i)
Возможно, вам также придется отфильтровать локальные логины (консоль)