Если кому интересно, на github доступна новая версия. В ней добавлена функция exec. С её помощью, можно легко добавить в своё меню удалённые RDP, VNC и прочие машины. А так же сделать к примеру такой пункт меню:

5) Upgrade всех виртуалок
        Выполнить: aptitude update && aptitude upgrade -y && reboot
        10.207.59.58
        10.207.59.59
        10.207.59.60
        10.207.59.61

https://github.com/emergy/Connection-Manager

Установить можно к примеру так:
sudo aptitude install git libjson-xs-perl libexpect-perl
cd ~/.local/share/
git clone git://github.com/emergy/Connection-Manager.git
sudo ln -s ~/.local/share/Connection-Manager/connection-manager.pl /usr/local/bin/cm

И правим конфиг:
cp ~/.local/share/Connection-Manager/config.json.example ~/.local/share/Connection-Manager/config.json
vi ~/.local/share/Connection-Manager/config.json


04.05.2011 19:23, Alex Emergy пишет:
Предлагаю вашему вниманию скрипт, удобную менюшку, для удаленных сессий по 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"
                }]
}]







--
С уважением,
Alex Emergy


--
ubuntu-ru mailing list
ubuntu-ru@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-ru

Дати відповідь електронним листом