Оч.интересная разработка.
Большое спасибо.
On Wed, 04 May 2011 18:23:20 +0300, Alex Emergy wrote:
Предлагаю вашему вниманию скрипт, удобную менюшку, для удаленных сессий
по SSH и Telnet
Возможности:
- Автологин SSH и Telnet сессий
- Весьма не сложный в настройке конфиг
- Многоуровневое меню (поддерживаются суб-меню любой глубины)
- К любому суб-меню можно "приклеить ярлык" и обращаться на прямую к
этому меню из командной строки
- Одна железяка может иметь несколько ip адресов.
- Описания или заметки к каждой железке отображаются в меню
- Open Source
Зависимости:
libjson-xs-perl, libexpect-perl
Установка:
sudo apt-get install libjson-xs-perl libexpect-perl
копируем cm к примеру в /usr/local/bin
и даём бит исполняемый:
chmod +x /usr/local/bin/cm
создаем свой конфиг в /home/username/.cm
Использование:
cm [arg]
Немного предыстории:
Мне по долгу службы, приходиться часто лазить на удалённые железяки и
серверы по ssh.
Так как их приличное количество и запомнить все IP и хостнеймы просто не
возможно, было
решено написать простейшую менюшку на shell (скрипт авторизации написал
ещё давно).
Но копаться каждый раз в теле скрипта, для того чтобы добавить новую
железяку надоело.
Начали появляться железяки с уникальным логином/паролем (которые тоже
надо помнить).
В общем было решено написать нормальную менюшку на Perl. Где можно
указать логин/пароль
на конкретную железяку, делать суб-меню любой сложности. В общем чтобы
было удобно.
Под винду полно подобного софта - под линукс ничего подобного не видел.
Вопросы, комментарии приветствуются. Если окажется, что это нужно
кому-то кроме меня, будем развиваться ;)
Конфиг:
Конфиг в формате JSON. С первого взгляда может не понятен, но на самом
деле довольно прост.
Подробности можно узнать тут: http://ru.wikipedia.org/wiki/JSON
name - имя пункта меню
menu - при наличии этой опции означает, что это суб-меню
arg - передавая аргумент указанный здесь из командной строки, можно
сразу перейти на это суб-меню
ip - ip-адрес. Если этот пункт отсутствует, то пытается подключиться по
name. При наличии нескольких ip адресов, появляется меню с выбором
login - логин от железяки. Может использоваться без password для SSH
сессий
password - пароль от железяки. Полезно для коммутаторов, маршрутизаторов
description - описание, заметка или что-то вроде того
type - если указан telnet, то подключаться будет по телнету
конфиг должен лежать в домашней директории:
~/.cm
Структура конфига очень напоминает хэши и массивы perl.
Примеры конфига:
1)--------------------------------------------------
[{
"name": "server1",
"ip": "192.168.11.9"
},
{
"name": "svn.corp",
"description": "SVN-Server"
},
{
"name": "Активное оборудование"
"arg": "a",
"menu": [{
"name": "Коммутаторы",
"menu": [{
"name": "192.168.11.2",
"login": "admin",
"password": "123456",
"type": "telnet"
},
{
"name": "192.168.11.3,
"login": "admin",
"password": "123456",
"type": "telnet"
}]
},
{
"name": "Маршрутизаторы",
"menu": [{
"name": "main",
"ip": "192.168.11.1"
}]
}]
}]
2)------------------------------------------------------------------------------------------
[{
"name": "Servers on VM",
"arg": "vm",
"menu": [{
"name": "SVN",
"ip": [
"192.168.4.9",
"98.33.74.2"
],
"login": "user44"
},
{
"name": "kvm.pika.corp",
"login": "root",
"description": "Hypervisor"
},
{
"name": "ngenix.r55.ru"
}]
},
{
"name": "Commutators & Routers",
"arg": "c",
"menu": [{
"name": "192.168.4.1",
"description": "Users GW",
"login": "admin",
"password": "1234secret"
},
{
"name": "192.168.1.10",
"login": "admin",
"password": "1234secret",
"type": "telnet"
},
{
"name": "E650-M9-AGG-10",
"ip": "10.10.3.9",
"description": [
"MSK-IX (4)",
"DATA-IX (2)"
],
"login": "support",
"password": "342r32r2ddd"
}]
}]
--
ubuntu-ru mailing list
ubuntu-ru@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-ru