The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
автоматическое выключение сервера по SSH, !*! masters, 13-Июн-09, 14:50  [смотреть все]
Есть 2 сервера в оффисе. 1й на винде 2003, а второй на FreeBSD 7.1 x64.

Оба подключены через ИБП. Только тот ИБП, что на виндовом сервере имеет еще и управление по USB.

Сейчас на винде настроено так, что при разряде батарей ИБП до 30% комп выключается. Но программка там универсальная - т.е. при разряде может не только вуключать комп но и выполнять разные комманды/программы.

Идея в чем: нужен скрипт, который бы выполнился при пропадении питания и корректно выключил второй сервер (на ФРЕ) по SSH.

Никто не пробовал такое, и вообще возможно-ли это?

P.S. когда-то давно писал программку на Делфи, которая управляла роутером по Телнет с использованием стандартной компоненты. Впринципе можно найти SSH - компоненты под Делфи (даже видел уже), но может есть вариант проще ???

  • автоматическое выключение сервера по SSH, !*! smile, 15:45 , 13-Июн-09 (1)
    технически не делал, если бы пришлось, то 1 опробованый вариант таков:

    1. сделать смертного (ничего не могущего) пользователя, обеспечтиь вход ssh по паре ключей
    2. повесить на фряшном сервере крон-скрипт, проверяющий состояние какого-нибудь файлика-статуса. Если он есть - убитьь его и начать заверешние работы
    3. виндовым ssh клиентом (той же путтей) в случае выключения питания заходить по на фряшный сервак под полбзователем из п.1.
    4. в логин-скрип пользователя (мне не нравится), либо просто выполнением ssh командой с удаленной винды создавать статусный файлик, проверяемый в п.2

    раздать права на создание файлика, проверить работу отдельных звеньев и в целом.

    т.к. упса на фряшке не умная и сама себя не отключит (как я понял из описания), то и выключение придется делать без возможности включаться при подаче искрическтва, это минус.

    • автоматическое выключение сервера по SSH, !*! masters, 17:11 , 13-Июн-09 (2)
      >[оверквотинг удален]
      >ключей
      >2. повесить на фряшном сервере крон-скрипт, проверяющий состояние какого-нибудь файлика-статуса. Если он
      >есть - убитьь его и начать заверешние работы
      >3. виндовым ssh клиентом (той же путтей) в случае выключения питания заходить
      >по на фряшный сервак под полбзователем из п.1.
      >4. в логин-скрип пользователя (мне не нравится), либо просто выполнением ssh командой
      >с удаленной винды создавать статусный файлик, проверяемый в п.2
      >
      >раздать права на создание файлика, проверить работу отдельных звеньев и в целом.
      >

      Вариант сильно запутанный... и ничего толком не дал.

      Инетерсует именно как запустить ssh-клиент (тот-же путти) и передать в него логин, пароль, а потом комманду halt в автоматическом режиме.

      Например: halt.cmd
      putty.exe
      login
      pass
      halt

      >
      >т.к. упса на фряшке не умная и сама себя не отключит (как
      >я понял из описания), то и выключение придется делать без возможности
      >включаться при подаче искрическтва, это минус.

      Вариант решаем. Вместо shutdown можно делать halt. Т.е. комп корректно завершит все процессы и размонтирует винты - но не выключится. Тем самым он разрядит батареи УПСа и ему волей-неволей придется выключиться. А потом при появлении питания комп автоматом включится по настройкам в Биосе.

      • автоматическое выключение сервера по SSH, !*! smile, 17:39 , 13-Июн-09 (3)
        >[оверквотинг удален]
        >>4. в логин-скрип пользователя (мне не нравится), либо просто выполнением ssh командой
        >>с удаленной винды создавать статусный файлик, проверяемый в п.2
        >>
        >>раздать права на создание файлика, проверить работу отдельных звеньев и в целом.
        >>
        >
        >Вариант сильно запутанный... и ничего толком не дал.
        >
        >Инетерсует именно как запустить ssh-клиент (тот-же путти) и передать в него логин,
        >пароль,

        для этого Вам и предложено выполнить п.1


        > а потом комманду halt в автоматическом режиме.
        >
        >Например: halt.cmd
        >putty.exe
        >login
        >pass
        >halt

        ломиться поьзователем с правами "гасить сервет" небезопасно. Разумнее сделать рутовый скрипт, который будет проверять признак "пора выключаться", а при автологине поьзователя (авто, потму что вводить пароль не потребуется - пара ключей спасут мир) выставлять этот признак.

        Это вменяемый вариант автоматизации. Как выпонять команду в путти - смотрите хелп по ней, там написано.

        >>
        >>т.к. упса на фряшке не умная и сама себя не отключит (как
        >>я понял из описания), то и выключение придется делать без возможности
        >>включаться при подаче искрическтва, это минус.
        >Вариант решаем. Вместо shutdown можно делать halt. Т.е. комп корректно завершит все
        >процессы и размонтирует винты - но не выключится. Тем самым он
        >разрядит батареи УПСа и ему волей-неволей придется выключиться. А потом при
        >появлении питания комп автоматом включится по настройкам в Биосе.

        да, это стандартный вариант, вижу проблему лишь в том, что упаса будет убиваться 0 - жалко ее.


  • автоматическое выключение сервера по SSH, !*! sergtv, 20:22 , 13-Июн-09 (4)
    >Идея в чем: нужен скрипт, который бы выполнился при пропадении питания и
    >корректно выключил второй сервер (на ФРЕ) по SSH.
    >
    >Никто не пробовал такое, и вообще возможно-ли это?
    > но может есть вариант проще ???

    Есть! Советую поставить на Фре knockd. почитайте про порткнокинг. Вы посылаете Фришной машине три пакета на заданные порты и она запускает любой узазанный Вами скрипт. Много удобнее чем страдать по SSH (я тоже когда-то так-же мучился :-) ) Порт-кнокинг клиент есть под ХР- knock.exe

    • автоматическое выключение сервера по SSH, !*! Smile, 11:43 , 14-Июн-09 (6)
      Если организовать типовую схему SSH-аутентификации по ключу неудобно, и Вы "мучился", не осилив ssh-keygen... тогда лучше убейте фрёвый сервер в пользу виндового, чтобы он не страдал от решений типа "порткнокинг".

      "Много удобнее чем страдать по SSH"... скажут же такое.

      • автоматическое выключение сервера по SSH, !*! sergtv, 19:07 , 14-Июн-09 (13)
        >Если организовать типовую схему SSH-аутентификации по ключу неудобно, и Вы "мучился", не
        >осилив ssh-keygen... тогда лучше убейте фрёвый сервер в пользу виндового, чтобы
        >он не страдал от решений типа "порткнокинг".
        >
        >"Много удобнее чем страдать по SSH"... скажут же такое.

        Каждый волен выбирать что кому удобнее. Я пробовал методом коннекта юзера по SSH  и методом knockd. Временные затраты на первое решение оказались больше. Второе ИМХО для локалки удобнее и проще, подчеркиваю -ИМХО. И ни в коем случае не настаиваю. А с ssh-keygen и аутентификацией по ключу все нормально, и напрасно Вы решили что кто-то что-то не осилил.

  • автоматическое выключение сервера по SSH, !*! Sarge, 09:24 , 14-Июн-09 (5)
    Есть хороший демон для упс - apcupsd. Он всё это умеет, надо только проверить его совместимость с вашей упс.

    https://www.opennet.ru/base/sys/apcupsd.txt.html

    • автоматическое выключение сервера по SSH, !*! Smile, 11:46 , 14-Июн-09 (7)
      >Есть хороший демон для упс - apcupsd. Он всё это умеет, надо
      >только проверить его совместимость с вашей упс.
      >
      >https://www.opennet.ru/base/sys/apcupsd.txt.html

      может ошибаюсь, но этот демон заточен для продукции APC.

    • автоматическое выключение сервера по SSH, !*! masters, 15:07 , 14-Июн-09 (8)
      >Есть хороший демон для упс - apcupsd. Он всё это умеет, надо
      >только проверить его совместимость с вашей упс.

      Если бы Вы внимательней читали, то поняли бы что УПС на серваке с ФРЕЙ не "умный". Из 2х УПСов управляемый только один, поэтому и нужен именно вариант, когда один сервер гасит второй.

      Попробую покурить МАН по Путти, хотя сомневаюсь что ей при запуске можно комманды передавать...

      • автоматическое выключение сервера по SSH, !*! Sarge, 15:23 , 14-Июн-09 (9)
        >Если бы Вы внимательней читали, то поняли бы что УПС на серваке
        >с ФРЕЙ не "умный". Из 2х УПСов управляемый только один, поэтому
        >и нужен именно вариант, когда один сервер гасит второй.

        Еслиб вы вообще хотя бы почитали ссылку, которую я дал, то смогли бы прочитать там, что больше одного "умного" УПСа для apcupsd и не требуется.

        • автоматическое выключение сервера по SSH, !*! masters, 17:46 , 14-Июн-09 (10)
          >Еслиб вы вообще хотя бы почитали ссылку, которую я дал, то смогли
          >бы прочитать там, что больше одного "умного" УПСа для apcupsd и
          >не требуется.

          У меня наоборот, умный УПС на Винде. Попробую эту схему обратным образом реализовать, провда УПС у меня MGE а не APC. Прога может не подойти...

          Кстати на сайте MGE есть тоже проги для Линукса, которые работают и по сети. Жаль что у меня в этой фре нет эмулятора Линукса, я так понял в версиях х64 он не ставится :(

          • автоматическое выключение сервера по SSH, !*! Grey, 18:00 , 14-Июн-09 (11)
            >[оверквотинг удален]
            >>не требуется.
            >
            >У меня наоборот, умный УПС на Винде. Попробую эту схему обратным образом
            >реализовать, провда УПС у меня MGE а не APC. Прога может
            >не подойти...
            >
            >Кстати на сайте MGE есть тоже проги для Линукса, которые работают и
            >по сети. Жаль что у меня в этой фре нет эмулятора
            >Линукса, я так понял в версиях х64 он не ставится :(
            >

            я когда-то делал у себя: винда с помощью putty логинилась на фрю из коммандной строки "парашюта" (точнее он выдавал такую команду) логинилась по сгенерённым ключам (генерил в putty), логинилась на фрю под юзером ,у которого вместо шела было "shutdown -p now", на фре было ограничение на возможность залогиниться с определённого IP.
            Думаю вполне себе решение....

            • автоматическое выключение сервера по SSH, !*! masters, 18:45 , 14-Июн-09 (12)
              >я когда-то делал у себя: винда с помощью putty логинилась на фрю
              >из коммандной строки "парашюта" (точнее он выдавал такую команду) логинилась по
              >сгенерённым ключам (генерил в putty), логинилась на фрю под юзером ,у
              >которого вместо шела было "shutdown -p now", на фре было ограничение
              >на возможность залогиниться с определённого IP.
              >Думаю вполне себе решение....

              напиши плз как путти запускал - параметры...

              • автоматическое выключение сервера по SSH, !*! PavelR, 19:07 , 14-Июн-09 (14)
                >>я когда-то делал у себя: винда с помощью putty логинилась на фрю
                >>из коммандной строки "парашюта" (точнее он выдавал такую команду) логинилась по
                >>сгенерённым ключам (генерил в putty), логинилась на фрю под юзером ,у
                >>которого вместо шела было "shutdown -p now", на фре было ограничение
                >>на возможность залогиниться с определённого IP.
                >>Думаю вполне себе решение....
                >
                >напиши плз как путти запускал - параметры...

                d:\Program Files\putty\plink.exe" -noagent -l shdwn_user -i "d:\Program Files\putty\keys\key_wopassphrase.ppk" host_to_shutdown_ip


                на сервере (FreeBSD) создан пользователь shdwn_user, включенный в группу operator. Создан каталог .ssh, в нем файл authorized_keys со значением

                command="shutdown -p now",no-pty,no-port-forwarding ssh-dss <key> <keycomment>

                уточнение для параноиков: в эту строку можно добавить параметр from=trusted_host_ip

                [root@host ~]# ls -l /sbin/shutdown
                -r-sr-x---  1 root  operator  10756  4 май 02:15 /sbin/shutdown

          • автоматическое выключение сервера по SSH, !*! Sarge, 03:38 , 15-Июн-09 (16)
            >У меня наоборот, умный УПС на Винде. Попробую эту схему обратным образом

            та заметка от 2005-го года вроде, щас уже и на винде можно умный держать.

            >реализовать, провда УПС у меня MGE а не APC. Прога может
            >не подойти...

            а вот тут да, не подойдёт эта прога

  • автоматическое выключение сервера по SSH, !*! AdVv, 22:12 , 14-Июн-09 (15)
    >[оверквотинг удален]
    >не только вуключать комп но и выполнять разные комманды/программы.
    >
    >Идея в чем: нужен скрипт, который бы выполнился при пропадении питания и
    >корректно выключил второй сервер (на ФРЕ) по SSH.
    >
    >Никто не пробовал такое, и вообще возможно-ли это?
    >
    >P.S. когда-то давно писал программку на Делфи, которая управляла роутером по Телнет
    >с использованием стандартной компоненты. Впринципе можно найти SSH - компоненты под
    >Делфи (даже видел уже), но может есть вариант проще ???

    Не изобретайте велосипедов, используйте NUT
    https://www.opennet.ru/prog/info/2329.shtml

  • автоматическое выключение сервера по SSH, !*! Дмитрий, 10:24 , 15-Июн-09 (18)
    Делать флаг-файл на фряхе и уже по нему определять надо-ли завершать работу, имхо, можно несколькими способами:

    1. фтп
    2. rsh
    3. rexec
    4. sftp
    5. ssh через пару ключей и скриптом

    Для безопастности можно настроить, чтобы все вышеперечисленное можно было выполнять только с нужной виндовой машины и больше ни откуда. Да что говорить, если настроить разрешение работать только с виндовой машины можно и телнет поднять, и уже через него скриптом формировать файл-ключь. Я в свое время также работал с виндовских машин на SCO Open Server-е где кроме телнета (rsh не проходил, т.к. запускаемый скрипт был интерактивный, а с рш это не проходило) ничего не было для управления.

    • автоматическое выключение сервера по SSH, !*! masters, 16:05 , 15-Июн-09 (21)
      >на сервере (FreeBSD) создан пользователь shdwn_user, включенный в группу operator. Создан каталог .ssh, в нем файл authorized_keys со значением
      >command="shutdown -p now",no-pty,no-port-forwarding ssh-dss <key> <keycomment>

      Где создавать этот каталог? На сервере в папке юзера? И что вместо key и keycomment писать ???

      Создал в папке пользователя, чтроку вбил вашу, ничего не менял - и не помогло. Логинится, но не выключается.

      • автоматическое выключение сервера по SSH, !*! masters, 16:38 , 15-Июн-09 (22)
        >Где создавать этот каталог? На сервере в папке юзера? И что вместо
        >key и keycomment писать ???
        >
        >Создал в папке пользователя, чтроку вбил вашу, ничего не менял - и
        >не помогло. Логинится, но не выключается.

        Сделал проще, в файле .shrc юзера прописал /sbin/halt

        Только вот трабл: пишет Operation not permitted :( Вроде юзера в группу операторы завел...

        • автоматическое выключение сервера по SSH, !*! Smile, 17:47 , 15-Июн-09 (23)
          >>Где создавать этот каталог? На сервере в папке юзера? И что вместо
          >>key и keycomment писать ???
          >>
          >>Создал в папке пользователя, чтроку вбил вашу, ничего не менял - и
          >>не помогло. Логинится, но не выключается.
          >
          >Сделал проще, в файле .shrc юзера прописал /sbin/halt
          >
          >Только вот трабл: пишет Operation not permitted :( Вроде юзера в группу
          >операторы завел...

          интересно, через сколько итераций Вы полностью перейдете к моему варианту =).

          • автоматическое выключение сервера по SSH, !*! masters, 18:12 , 15-Июн-09 (24)
            >интересно, через сколько итераций Вы полностью перейдете к моему варианту =).

            не дошел :)

            решил проблему через sudo (совсем забыл про него почему-то).

            Вообщем вот выкладываю кому интересно:

            1) создаю на ФРЕ shdwn_user.
            2) в .shrc ему добавляю sudo /sbin/halt
            3) на винде в программе Eaton UPS в Shutdown Configuration выбираю Shutdown Script
            4) редактировать скрипт - в самом конце перед "shutdown.exe -shutdown" добавляю строчку: "c:\Program Files\putty\plink.exe" -noagent -l shdwn_user -pw <password> <server IP>

            P.S. только что пришла идея. Чтобы зря не убивать батарею УПСа - не делать Халт, а делать Шатдаун. А потом запускать этот сервер через Wake On Lan с виндового сервака. Никто такое не пробовал ???

            • автоматическое выключение сервера по SSH, !*! Smile, 18:54 , 15-Июн-09 (25)
              >[оверквотинг удален]
              >1) создаю на ФРЕ shdwn_user.
              >2) в .shrc ему добавляю sudo /sbin/halt
              >3) на винде в программе Eaton UPS в Shutdown Configuration выбираю Shutdown
              >Script
              >4) редактировать скрипт - в самом конце перед "shutdown.exe -shutdown" добавляю строчку: "c:\Program Files\putty\plink.exe" -noagent -l shdwn_user -pw <password> <server IP>
              >
              >P.S. только что пришла идея. Чтобы зря не убивать батарею УПСа -
              >не делать Халт, а делать Шатдаун. А потом запускать этот сервер
              >через Wake On Lan с виндового сервака. Никто такое не пробовал
              >???

              принципе, если вариант логина всемогущего пользователя (я так понял он из группы wheel  и sudo для него сделано без пароля - имхо, моветон) устраивает, то осталось убедиться, в том, что свитч между виндовым сервером и фревым тоже висит на УПСе =)


              • автоматическое выключение сервера по SSH, !*! Warhead Wardick, 21:05 , 15-Июн-09 (26)

                >>1) создаю на ФРЕ shdwn_user.
                >>2) в .shrc ему добавляю sudo /sbin/halt
                >принципе, если вариант логина всемогущего пользователя (я так понял он из
                >группы wheel и sudo для него сделано без пароля - имхо, моветон) устраивает,

                Вот тупой то, прости гоподи! Для тебя же черным по желтому подробно раписали!
                То есть из привелигированных комманд shdwn может только /sbin/halt! (Я бы всё же заюзал shootdown)

                >то осталось убедиться, в том, что свитч между виндовым
                >сервером и фревым тоже висит на УПСе =)

                Ты гляди - есть таки надежда, не полный ФГМ то, только частичный ... может и вылечишся.

                • автоматическое выключение сервера по SSH, !*! Smile, 07:41 , 16-Июн-09 (27)
                  >[оверквотинг удален]
                  >Вот тупой то, прости гоподи! Для тебя же черным по желтому подробно
                  >раписали!
                  >То есть из привелигированных комманд shdwn может только /sbin/halt! (Я бы всё
                  >же заюзал shootdown)
                  >
                  >>то осталось убедиться, в том, что свитч между виндовым
                  >>сервером и фревым тоже висит на УПСе =)
                  >
                  >Ты гляди - есть таки надежда, не полный ФГМ то, только частичный
                  >... может и вылечишся.

                  дружок, ты либо хам, либо не читаешь, либо ошибся урлом.

                  • автоматическое выключение сервера по SSH, !*! Pain, 07:51 , 16-Июн-09 (28)
                    >дружок, ты либо хам, либо не читаешь, либо ошибся урлом.

                    Естественно он - хам. (Тебе его ник перевести?)
                    НО! Сказал он исключительно правду и исключительно по-делу :)

                    • автоматическое выключение сервера по SSH, !*! Smile, 10:07 , 16-Июн-09 (29)
                      >>дружок, ты либо хам, либо не читаешь, либо ошибся урлом.
                      >
                      >Естественно он - хам. (Тебе его ник перевести?)
                      >НО! Сказал он исключительно правду и исключительно по-делу :)

                      Он посоветовал человеку заводить судоера, ограничивать ему права гашением кампутера. Я посоветовал создать серого пользователя, создающего файл-флаг и повесить в крон скрипт на проверку. Оба вариант рабочие, но я предпочел бы 2 вариант просто от паранои, что есть лишний судоер. Каждому свое.

                      • автоматическое выключение сервера по SSH, !*! masters, 23:52 , 16-Июн-09 (30)
                        >Он посоветовал человеку заводить судоера, ограничивать ему права гашением кампутера.

                        Да, извиняюсь что не расписал. У пользователя shdwn_user действительно в SUDO разрешен только halt. Это не wheel и никаких лишних привелегий у него нет.

                        >Я посоветовал
                        >создать серого пользователя, создающего файл-флаг и повесить в крон скрипт на
                        >проверку. Оба вариант рабочие, но я предпочел бы 2 вариант просто
                        >от паранои, что есть лишний судоер. Каждому свое.

                        Кроме меня сервер никто не трогает, наружу все порты управления закрыты а внутри сети одни ламеры (оффис, 80% женщины которые свой компьютер с трудом могут включить). Так что я думаю для меня этого уровня безопасности вполне хватит :)

                        Насчет WakeOnLan думаю пока притормозить. Всеравно даже если сервер выключить - свичи и маршрутизаторы разрядят ИБП. Просто следующему новому юзеру отдам этот ИБП а на сервер с ФРЕй возьму новый с управлением :)




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру