Назад | Перейти на главную страницу

Могу ли я заставить SSH запустить «локальный вызов процедуры» на моей рабочей станции, что позволит мне использовать мои верные сценарии системного администратора, где бы я ни находился?

Есть ли в SSH что-нибудь вроде механизма «вызова локальной процедуры», который позволил бы мне на мгновение перенаправить STD {IN, OUT, ERR} на процесс на моей рабочей станции после подключения SSH к удаленному компьютеру? Может быть, кладж, включающий перенаправление портов SSH и netcat?

Допустим, клиент сообщил о высокой нагрузке на свой веб-сервер, с которой я обычно не справляюсь, и об установке SSHFS, NFS или любого другого нового пакета не может быть и речи.

Я решил, что мне нужно передать журналы запросов apache через мой надежный скрипт подсчета IP-адресов, чтобы перечислить самых жадных клиентов. я мог SCP / uu закодировать мой скрипт / файл журнала на / с сервера. я мог скопируйте и вставьте $ PWD, откройте новый терминал и запустите другую команду SSH, чтобы поместить файл журнала в мой локальный скрипт.

Но через несколько секунд я решил, что мне нужно заблокировать оскорбительные IP-адреса, и для этого у меня тоже есть сценарий. Затем я обнаружил, что мне нужен еще один сценарий и еще один сценарий, и довольно быстро SCP / uuencode / pbcopy / copy и paste, а манипуляции с окнами терминала превращаются в перетаскивание.

Я просто хочу:

$ ssh server.example.com

$ runhere whereis-apache-log.sh
Apache logs found:
wordpress.example.com /var/logs/apache2
example.com /dev/null    
business.example.com /opt/serious_business/logs/apache/usr/logs/nfs/hello_logs/logs/log

$ cd /opt/serious_business/logs/apache/usr/logs/nfs/hello_logs/logs/log

$ pipehome ip-tally.pl < access.log
13.14.15.16 5
1.2.3.4 20
9.10.11.12 46
5.6.7.8 57
17.18.19.20 43728

$ runhere block-forever.py 17.18.19.20

Не могли бы вы просто сделать это:

workstation$ ssh server cat /var/log/apache/access.log |ip-tally.pl

Кошка будет запускаться на сервере, стандартный вывод передается на рабочую станцию, а ip-tally запускаться локально на рабочей станции с выводом cat как стандартный ввод