Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Wellington.a.gomes

Acessar seviços windows com PHP

Recommended Posts

Iae galera beleza,

então, andei pesquisando mas não achei muita coisa (em portugues pelo menos).

Teria como me conectar em uma máquina windows para iniciar,parar serviços com PHP?

Vi sobre o WMI, mas não entendi muito bem.

 

 

Se alguem souber eu agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hmm...

 

Você quer acessar o seu servidor via SSH ?

 

- Não entendi muito bem o que você quer fazer e qual a finalidade disso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então,

estou montando um projeto de um sistemas de monitoramento em php.

Queria saber se tem algum jeito de poder verificar se algum serviço do windows (mysq,php,entre outros) está iniciado, parado e poder dentro desse sistema parar ou iniciar o serviço.

Ex:

->Servidor de monitoramento (pc separado).

 

-> Servidor DHCP (pc separado)

-> Servidor IIS (pc separado)

-> Servidor DNS (pc separado)

 

Atraves do servidor de monit.:

->Monitorar

-> Iniciar ou parar o serviços do servidores acima. Só que cada um em máquina separada digamos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu sugiro que primeiro tente fazer isto no dos, cmd, se você conseguir fazer por la, eh so usar a funcao exec, porem você tera que instalar o php e apache em cada maquina q pretende monitorar, eles monitoram e dae mandam as informacoes para o pc q deve montar os relatorios, mas se for o caso de saber se o servidor esta online ou nao, eu sugiro apenas usar ping, acho q da pra fazer com exec, mas seria bom montar o ping num servidor linux em shell script, e ele escrever um txt e o php ler este txt...sera bem mais simples...

Compartilhar este post


Link para o post
Compartilhar em outros sites

pois eh, além de verificar se o servidor está online também teria essa função de checar os serviços.

pelo dos tem como sim.

 

Inclusive no php vi a biblioteca sei lá php_win32services.dll que segundo o que eu entendi seria justamente para isso.

Mas no site não consegui achar ela para baixar.

 

Enfim, se tiverem mais sugestões eu agradeço.

 

Jeito tem, pois já trabalhei em uma empresa onde utilizávamos o zabbix para monitoramento de serviços dos servidores.

Só não lembro se tinha essa opção de iniciar ou parar um serviço, mas monitorar o serviço tinha como.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ae q ta, veja bem o q falei

 

eu sugiro que primeiro tente fazer isto no dos, cmd, se você conseguir fazer por la, eh so usar a funcao exec, porem você tera que instalar o php e apache em cada maquina q pretende monitorar, eles monitoram e dae mandam as informacoes para o pc q deve montar os relatorios, mas se for o caso de saber se o servidor esta online ou nao, eu sugiro apenas usar ping, acho q da pra fazer com exec, mas seria bom montar o ping num servidor linux em shell script, e ele escrever um txt e o php ler este txt...sera bem mais simples...

 

veja que o zabbix faz o que eu falei para você...

 

http://www.zabbix.com/requirements.php

 

para windows so tem o agent (client) e nao o server, o server mesmo so pra linux...outra coisa o zabbix, pelo q notei, posso estar enganado, foi feito em shell script, uma linguagem de baixo nivel ( ou seja, o mais proximo da linguagem de mauqina, os 0 e 1), ja o php eh linguagem de alto nivel (mais proximo da linguagem humana)...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Exatamente,para windows só o agent, que envia as informações para o servidor.

Só que o Zabbix se não me engano só monitora, não tem como iniciar ou parar um serviço por ele.

Essa era a outra forma que eu estava pensando.

Mais ou menos assim:

 

- > O servidor monitora os computadores

-> cada computador tem um agent que enviar e recebe informações

Se caso um serviço cair ou precisar ser parado, enviaria o comando dos DOS (ex: net start spooler) e o agent executaria esse comando entende.

 

Só que ai preciso de uma 2ª linguagem para criar o agente e para que ele faça isso.

E ai que está o problema hehe. Não sei qual a melhor maneira de fazer isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

pois entao, você procura o comando pra ver os servicos no dos, executa estes comandos nos exec do php(isso nos clientes), e dae e manda os dados para o servidor, q monta o relatorio...

Compartilhar este post


Link para o post
Compartilhar em outros sites

A sugestão é que você tenha um servidor que faça o monitoramento dos demais servidores (centralizado) e que execute os comandos administrativos como se estivesse executando via linha de comando (funções exec(), system(), passthru()).

 

http://ss64.com/nt/netsvc.html

http://ss64.com/nt/sc.html

http://ss64.com/nt/net.html

Compartilhar este post


Link para o post
Compartilhar em outros sites

É exatamente isso que tenho tentado explicar hehe.

Um servidor centralizado monitora os demais e inicia ou para serviços deles.

Mas no caso, para usar os comandos dos windows (net,sc) no servidor que é linux vai funcionar no script php?

Compartilhar este post


Link para o post
Compartilhar em outros sites
<br>A sugestão é que você tenha um servidor que faça o monitoramento dos

demais servidores (centralizado) e que execute os comandos

administrativos como se estivesse executando via linha de comando

(funções exec(), system(), passthru()).<br>

<br>exatamente, apenas uma sugestao, e o ideal, mas você tem q fazer o q você tem em suas maos, com o php, sim, você teria q ter o apache instalado no cliente, e da pra rodar php com shell script sim..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, agora fiquei feliz uahuhauha

segue o link com o comando via linux

http://www.commandlinefu.com/commands/view/5943/stop-or-start-restart-a-windows-service-from-a-linux-machine

 

Obs: tem que instalar o samba antes no servidor.

 

Já fiz o teste em um pc com windows 7 e funfou.

Claro...direto via console linux.

Mas, se funcionou no console, no php é fichinha hehe.

 

O bom é que como você digita a senha direto na linha de comando, da pra até ser dinâmico com php, trazer as senhas do banco e jogar no comando. show de bola.

Irei testar direto com php agora e volto pra dizer se deu certo.

 

vlw cara, ajudou bastante.

 

Bom galera, efetuei um teste com script bem "rude" digamos só para testar e funcionou.

 

<?php

$comando = system("net rpc -I 192.168.2.10 -U usuario%senha service start spooler",$valor);
print $valor;

?>

 

Inicia, pausa e outra coisa que la no site não mostra (pelo menos não vi), é que da pra saber o status também.

Da mesma forma só alterando o start para status.

 

Agora é só botar a mão na massa e tratar os erros que ele devolve para uma linguagem mais usuaria hehe.

Vlw gente. Como esse projeto é a longo prazo, irei demorar para trazer boas novas, mas estarei atualizando de acordo como eu for fazendo.

 

Abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.