Postado originalmente por
powerbylinux
oi ...
estou tentando fazer a mesma coisa que o amigo ... ja consegui fazer o php executar um comando no mikrotik , so que tem algums problemas ...
deixa eu tentar explicar como eu fiz ...
criei uma chave DSA mandei pro MK e inportei a chave de modo que agora tenho acesso ao MK sem a utilização de senha ... ai da minha maquina executo o seguinte comando:
ssh admin@IP_DO_MK "ip firewall filter print"
Retorna bonitinho ....
agora vem o php ...
pra testar pus esse codigo:
<?php
echo '<pre>';
$comando = system('sudo ssh usuario@IP_DO_MIKROTIK "ip firewall filter print" ', $retval);
?>
isso executa o comando remoto e retorna o resultado ...
mas ai vem meu problema ...
consigo adicionar regras .... mas nao consigo editar .. desabilitar ou mesmo remover uma regra ...
descobri que ao me logar via ssh no MK e executar por exemplor "ip firewall filter disable 1" ele nao reconhece o numero da regra
e pede pra dar um "print" antes ...
item number must be assigned by a print command
use print command before using an item number in a command
somente apos " ip firewall filter print" eu posso executar "ip firewall filter disable 1" .... sendo assim acredito que ja descobri o pq dele nao desabilitar quando executo o comando da minha maquina linux .... ( ssh admin@IP_DO_MK '/ ip firewall filter disable 1' ) ai vem a pergunta ... como digitar comandos em sequencia no MK ? no linux uso "&&" para informar que um segundo comando deve ser executado se o primeiro nao retornar erro ... mas no MK aparentemente nao funciona ..... alguem sabe como resolver isso ou tem uma forma mais facil de fazer a mesma coisa ?