Программа для автоматического выполнения комманд на удаленном linux с windows машины

Тема в разделе "Десктопный Linux", создана пользователем pash_it, 4 ноя 2010.

Модераторы: Цукер
  1. pash_it

    pash_it Постоялец

    Регистр.:
    5 окт 2007
    Сообщения:
    127
    Симпатии:
    4
    Есть мониторинг, который может запускать программу, если сайт недоступен.
    Например хотело бы чтобы при мониторинге ФТП, когда ФТП лежит(( мониторинг запускал программу, которая коннектилась бы по ssh и выполняла всего 1 команду:
    service proftpd restart
     
  2. Sammerset

    Sammerset Постоялец

    Регистр.:
    14 сен 2008
    Сообщения:
    136
    Симпатии:
    10
    наф тебе удалённо? скрипт на проверку накалякай, в крон укажи задание выполнение каждые 5 мин. и будет тебе мармелад!
     
  3. pash_it

    pash_it Постоялец

    Регистр.:
    5 окт 2007
    Сообщения:
    127
    Симпатии:
    4
    Нет нужно чтобы когда FTP только был недоступен( Мониторинг заметил - запустил программку, программка вошла перезапустила.
     
  4. help40

    help40

    Регистр.:
    1 окт 2006
    Сообщения:
    252
    Симпатии:
    26
    1) как все знаем можно използувать ssh , в твоем случае ssh с Cygwin

    инсталируем Cygwin
    делаем C:\cygwin\launch.bat
    Код:
    @echo off
    C:
    chdir C:\cygwin\bin
    bash --login -i -c "%*"
    запускаем команду
    Код:
    C:\cygwin\launch.bat ssh user@host "remotecommand"
    
    конечно тебе нужно сгенерировать ключ для authentication бес парола
    Код:
    You@PC ~
    $ ssh-keygen -t dsa
    Generating public/private dsa key pair.
    Enter file in which to save the key (/home/You/.ssh/id_dsa): <type ENTER here>
    Enter passphrase (empty for no passphrase): <type ENTER here>
    Enter same passphrase again: <type ENTER here>
    Your identification has been saved in /home/You/.ssh/id_dsa.
    Your public key has been saved in /home/You/.ssh/id_dsa.pub.
    The key fingerprint is:
    e0:6a:23:1b:9b:40:bd:73:76:94:c0:e5:35:21:cb:a5 You@PC
    
    You@PC ~
    $ cat .ssh/id_dsa.pub | ssh remoteUser@remoteHost 'cat >>.ssh/authorized_keys'
    remoteUser@remoteHost's password: <type remoteUser's password here + ENTER>
    
    2) можешь използуват и plink.exe , которая част из Putty
    Код:
    C:\Program Files\Putty\plink.exe -ssh -2 -P 22 user@server ls -l /tmp
     
    pash_it нравится это.
  5. jabjab

    jabjab Создатель

    Регистр.:
    27 окт 2010
    Сообщения:
    42
    Симпатии:
    12
    Когда мне понадобилось решить аналогичную задачу, я остановился на
    http://www.freesshd.com/
    он бесплатный и никакого дополнительного софта или библиотек не нужно.
     
  6. help40

    help40

    Регистр.:
    1 окт 2006
    Сообщения:
    252
    Симпатии:
    26
    ето sshd - тоесть демон , там нет "ssh" который нам нужен
     
    jabjab нравится это.
  7. jabjab

    jabjab Создатель

    Регистр.:
    27 окт 2010
    Сообщения:
    42
    Симпатии:
    12
    Каюсь, невнимательно прочитал сообщение ТС и неправильно его понял. В таком случае, есть, опять же, альтернатива cygwin — нативный клиент на основе исходников известного putty: Перейти по ссылке
     
  8. pash_it

    pash_it Постоялец

    Регистр.:
    5 окт 2007
    Сообщения:
    127
    Симпатии:
    4
    help40, Огромное спасибо! Сделал как автоматически все делать с помощью 1 команды plink.exe.

    Но появился вопрос по безопасности, как разрешить пользователю linux только перезапускать FTP (хотя бы перезапускть), все остальные любые команды - запретить.
     
  9. ioioio4

    ioioio4 Постоялец

    Регистр.:
    24 июн 2007
    Сообщения:
    138
    Симпатии:
    11
    что то неправильное мутите

    cron + шел скрипт

    скрипт пингует локальный порт , если ничего нет то рестарт
     
  10. pash_it

    pash_it Постоялец

    Регистр.:
    5 окт 2007
    Сообщения:
    127
    Симпатии:
    4
    ProFTPD работает, не знаю как его еще можно мониторить,

    Это в момент когда он повис:
    [root@s12 ~]# ps aux | grep ftp
    root 6260 0.0 0.0 6132 592 pts/0 S+ 11:44 0:00 grep ftp
    ftp 24382 0.0 0.0 41128 2332 ? SLs Oct31 0:00 proftpd: (accepting connections)
    [root@s12 ~]# telnet localhost 21
    Trying 127.0.0.1...
    Connected to localhost.localdomain (127.0.0.1).
    Escape character is '^]'.
    220 ::ffff:127.0.0.1 FTP server ready
    quit
    221 Goodbye.
    Connection closed by foreign host.
    [root@s12 ~]# service proftpd status
    proftpd (pid 24382) is running...
    [root@s12 ~]# service proftpd restart
    Shutting down proftpd: [ OK ]
    Starting proftpd: [ OK ]
    [root@s12 ~]#

    Только после перезапуска FTP на него можно войти.