Для этого можно использовать опцию SSH -W
. Из руководства:
-W host :port
Запрашивает пересылку стандартного ввода и вывода на клиенте на порт хоста по защищенному каналу. Подразумевает -N, -T, ExitOnForward-Failure и ClearAllForwardings. Работает только с протоколом версии 2.
Вы можете настроить это в ~/.ssh/config
для упрощения процесса, например, так:
Host Server1
Hostname 200.200.200.1
Port 2222
User you
IdentityFile ~/.ssh/id_rsa
Host Server2
Hostname 192.168.1.2
Port 3333
User you
IdentityFile ~/.ssh/id_dsa
# Hop to 2
Host Server2
ProxyCommand ssh -W %h:%p Server1
Затем вы просто ssh Server2
и - если вы правильно настроили аутентификацию - вы войдете на Server2.
Используя Solaris awk
(, в котором не было бы переключателя -v
или возможности установки переменных ), и используя исходный запрос для начала, вы можете сделать:
Процент свободной памяти:
a=$(/usr/sbin/prtconf | /usr/bin/awk '/Memory/ {print $3*1024}'); vmstat 1 1 | tail -1 | awk "{print (\$5/$a)*100}"
Процент используемой памяти:
a=$(/usr/sbin/prtconf | /usr/bin/awk '/Memory/ {print $3*1024}'); vmstat 1 1 | tail -1 | awk "{print 100-(\$5/$a)*100}"
Сначала назначьте переменную в оболочке, затем выполните vmstat
запрос, используя подстановку переменных оболочки. Это требует использования двойных кавычек в awk
и обязательного экранирования переменной awk
. Вам также не нужно использовать fgrep
и awk
вместе, awk
может делать и то, и другое.
Проверено на моем Opensolaris, который у меня есть, так что YMMV.
echo ::memstat | mdb -k
Выдает процент использования памяти ядром, zfs, пользователями и бесплатно.
Вы должны быть пользователем root.