Просмотр полной версии : Программа для автоматического выполнения комманд на удаленном linux с windows машины
Есть мониторинг, который может запускать программу, если сайт недоступен.
Например хотело бы чтобы при мониторинге ФТП, когда ФТП лежит(( мониторинг запускал программу, которая коннектилась бы по ssh и выполняла всего 1 команду:
service proftpd restart
Sammerset
04.11.2010, 14:16
наф тебе удалённо? скрипт на проверку накалякай, в крон укажи задание выполнение каждые 5 мин. и будет тебе мармелад!
Нет нужно чтобы когда FTP только был недоступен( Мониторинг заметил - запустил программку, программка вошла перезапустила.
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):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
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:
2) можешь използуват и plink.exe , которая част из Putty
Код:
C:\Program Files\Putty\plink.exe -ssh -2 -P 22 user@server ls -l /tmp
Когда мне понадобилось решить аналогичную задачу, я остановился на
Для просмотра скрытого содержимого необходимо иметь 5 сообщений, у вас 0 сообщений.
он бесплатный и никакого дополнительного софта или библиотек не нужно.
jabjab написал(а):
Когда мне понадобилось решить аналогичную задачу, я остановился на
*** скрытое содержание ***
он бесплатный и никакого дополнительного софта или библиотек не нужно.
ето sshd - тоесть демон , там нет "ssh" который нам нужен
help40 написал(а):
ето sshd - тоесть демон , там нет "ssh" который нам нужен
Каюсь, невнимательно прочитал сообщение ТС и неправильно его понял. В таком случае, есть, опять же, альтернатива cygwin — нативный клиент на основе исходников известного putty: http://winssh.narod.ru/ (https://href.li/?http://winssh.narod.ru/)
help40, Огромное спасибо! Сделал как автоматически все делать с помощью 1 команды plink.exe.
Но появился вопрос по безопасности, как разрешить пользователю linux только перезапускать FTP (хотя бы перезапускть), все остальные любые команды - запретить.
что то неправильное мутите
cron + шел скрипт
скрипт пингует локальный порт , если ничего нет то рестарт
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 на него можно войти.
Adramelech
11.02.2011, 20:53
pash_it написал(а):
help40, Огромное спасибо! Сделал как автоматически все делать с помощью 1 команды plink.exe.
Но появился вопрос по безопасности, как разрешить пользователю linux только перезапускать FTP (хотя бы перезапускть), все остальные любые команды - запретить.
Попробуйте команду visudo (аналог nano /etc/sudoers)
и в конфиг внесите
linux ALL=(ALL) NOPASSWD: /etc/init.d/ftp
И будет вам счастье, если планируете еще какие то сервисы таким путем мониторить то команды перечислять можно через запятую.
LuckyNeo
04.03.2011, 20:56
А можно ещё подробнее, чтобы создать разным пользователям и админам разделение доступа. После visudo под рутом:
## Host Aliases
## Groups of machines. You may prefer to use hostnames (perhap using
## wildcards for entire domains) or IP addresses instead.
# Host_Alias FILESERVERS = fs1, fs2
# Host_Alias MAILSERVERS = smtp, smtp2
Host_Alias SAMPLE = 192.168.1.2, 127.0.0.1
Затем раскомментировать строчку:
## Networking
Cmnd_Alias NETWORKING = /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dhclient, /usr/bin/net, /sbin/iptables, /usr/bin/rfcomm, /usr/bin/wvdial, /sbin/iwconfig, /sbin/mii-tool, /etc/sysconfig/iptables
## Installation and management of software
Cmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/up2date, /usr/bin/yum
Затем:
## User Aliases
## These aren't often necessary, as you can use regular groups
## (ie, from files, LDAP, NIS, etc) in this file - just use %groupname
## rather than USERALIAS
# User_Alias ADMINS = jsmith, mikem
User_Alias GODS = admincheg, lamercheg
=)
Дальше:
## Next comes the main part: which users can run what software on
## which machines (the sudoers file can be shared between multiple
## systems).
## Syntax:
##
## user MACHINE=COMMANDS
##
## The COMMANDS section may have other options added to it.
##
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
admincheg SAMPLE = NETWORKING
lamercheg SAMPLE = SOFTWARE
И последнее:
## Same thing without a password
#%wheel ALL=(ALL) NOPASSWD: ALL
GODS ALL =(ALL) NOPASSWD: ALL
Могу ещё написать мануальчик по подробному созданию пермишенов в среде visudo Сам освоил недавно. прекрасная команда!
LuckyNeo написал(а):
А можно ещё подробнее, чтобы создать разным пользователям и админам разделение доступа.
sudo su user -c "commands"
удобно когда не хочеш вводить пароль. но я бы порекомендовал осилить ключи и expect.
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot