Execução de script php no Linux! [RESOLVIDO]

1. Execução de script php no Linux! [RESOLVIDO]

Anderson Leão Gimenes
leaogimenes

(usa Ubuntu)

Enviado em 22/05/2012 - 12:54h

Olá pessoal, tenho alguns comandos(linux) que devo executar entre servidores dentro da minha rede onde o meu script tem este cenário:

<?php
......
exec('sudo ssh root@192.168.X.XX rm -rf /var/spool/asterisk/outgoing/*', $output);
.....
?>

e Outros assim:
<?php
.......
exec("sudo scp /tmp/{$variavel}.call root@192.168.x.xx:/var/spool/asterisk/outgoing/",$output);
.....
exec("sudo rm -rf /tmp/{$variavel}.call");
.....
?>

O que fiz como teste para dar permissão ao usuário apache executar o php com a função "exec"
<?php
$filename = "arquivo.txt" ;
$dest = '/home/teste/' . $filename ;
exec("sudo scp arquivo.txt root@192.168.X.XX:$dest", $output) ;
echo exec('whoami');
print_r($output);
?>
*liberei o acesso dentro do "sudoers" e o envio deste arquivo entre os servidores funcionou....

*Mas o SSH das opções acima, ainda pedem senha para efetuar o "SSH", e "rm -rf".
*Tentei efetuar o comando na linha do bash, e retornou isso:
-----
comando: sudo ssh root@192.168.X.XX:/var/spool/asterisk/outgoing/
-----
resposta: ssh: Could not resolve hostname 192.168.X.XX:/var/spool/asterisk/outgoing/:
Name or service not known
------
Minha necessidade:

Efetuar estes comandos sem a necessidade de solicitação de senha, e que o usuário que executa o comando tenha permissão para isto.
O que aconteceu, é que formatamos o servidor e as configurações se perderam.

Caso alguem já tenha passado por isso, e puder me ajudar serei grato.

Abs

Anderson



  


2. MELHOR RESPOSTA

Geraldo Albuquerque
AprendiNoLinux

(usa Ubuntu)

Enviado em 25/05/2012 - 11:18h

leaogimenes escreveu:

Eu entendo e vc tem toda a razão mesmo, e tenho em um outro cliente meu a Administração inteira dos servidores usando bash.sh em quase tudo, me baseando nas rotinas com "cron", isso é muito bom mesmo.
Mas esta rotina que aqui nesta empresa gera uma "ura" de Ligação atraves de um servidor Asterisk, sempre funcionou, ao formatar o servidor que efetuava esta rotina, algumas configs, se perderam.


ok ;)


Não tenho no momento como mudar esta rotina, usando ".sh" tenho que manter o que tem. Como disse antes, necessito somente que este SSH entre servidores funcione, a linhas de comando dentro deste Script PHP são estas:

"scp /tmp/{$telefone}.call root@192.168.0.47:/tmp/";

"exec('ssh root@192.168.0.47 rm -rf /var/spool/asterisk/outgoing/*', $output);"

Fora isto mais nada, e ele continua pedindo senha, pois no log do ssh, esta lá a solicitação.

Caso alguem tenha uma alternativa, fico grato com a ajuda de todos.

Abs.



Só para eu ter certeza. Vamos esquecer o script php ou sh por este momento.


a) Como você fez a conexão ssh ?
b) Conectado em ssh vc cai dentro do servidor certo ?
c) Você consegue conectado mapear na pasta /media a determinada pasta do servidor ssh em questão ? Ou a raiz dela ?
d) Via comando na mão, vc consegue criar uma pasta e criar um arquivo dentro desta máquina que está com ssh, de preferência no local onde você vai manipular ?
e) Diga-me, como você conseguiu fazer isso na linha de comando ?


Como eu faço a minha conexão ssh.
Claro que pelo que entendi vc já fez a transmissão do arquivo de senha criptografado para não ficar pedindo senha. Esta parte é a mais chatinha, o resto é básico.

Configuração básica do sshfs do meu arquivo /etc/fstab


#monta diretório virtual SSHFS
sshfs#administrador@200.xxx.0.xxx:/home/gatux/pasta_virtual /media/pasta_virtual fuse noauto,users,exec,uid=1033,gid=33,allow_other,reconnect,BatchMode=yes,transform_symlinks,sshfs_sync,umask=002,comment=sshfs,port=3977 0 0



Note que a minha conexão ssh não acontece na pasta padrão e também não usa o número padrão de porta ssh.

No profile da minha máquina local eu coloquei no final.


sshfs -p3977 administrador@200.xxx.0.xxx:/home/administrador/pasta_virtual /media/pasta_virtual


Usando desta forma, eu tenho sempre que conectado acesso ao diretório no servidor e faço cópias ou removo arquivo dentro dos locais onde tenho permissão. As permissões são liberadas ao usuário que está cadastrado no server , etc.. etc...

Claro que se você não deseja uma conexão persistente como a minha, não deve fazer como eu faço no /etc/fstab




3. Re: Execução de script php no Linux! [RESOLVIDO]

Daniel Lara Souza
danniel-lara

(usa Fedora)

Enviado em 22/05/2012 - 13:01h

de uma lida

http://www.vivaolinux.com.br/dica/SSH-sem-senha

espero que ajude


4. Vou testar

Anderson Leão Gimenes
leaogimenes

(usa Ubuntu)

Enviado em 22/05/2012 - 17:01h

danniel-lara escreveu:

de uma lida

http://www.vivaolinux.com.br/dica/SSH-sem-senha

espero que ajude




Opá, vou testar, e volto com a resposta! Valeu Danniel!


5. Não funfou

Anderson Leão Gimenes
leaogimenes

(usa Ubuntu)

Enviado em 24/05/2012 - 09:47h

Olá Daniel, fiz o procedimento gerei as chaves, mas continua pedindo senha. existe mais algum parametro, ou configuração no servidor que vai receber esta conexão.
Exite algum outro paramentro que libere ssh para toda a rede, ou por IP, sem necessidade de senha?

at.


6. Execução de script php no Linux!

Anderson Leão Gimenes
leaogimenes

(usa Ubuntu)

Enviado em 25/05/2012 - 08:57h

leaogimenes escreveu:

Olá Daniel, fiz o procedimento gerei as chaves, mas continua pedindo senha. existe mais algum parametro, ou configuração no servidor que vai receber esta conexão.
Exite algum outro paramentro que libere ssh para toda a rede, ou por IP, sem necessidade de senha?

at.


Bom galera, NÃO CONSEGUI... e não estou entendendo, eu efetuei um processo usando SCP, e ele funciounou transferindo um arquivo de um servidor para o outro, sem a necessidade de senha, sendo o SCP um SSH... deveria funcionar uma simples conexão sem senha, mas não foi, é um comando simples que falta para acertar uma rotina na empresa muito necessária.

"scp /tmp/{$telefone}.call root@192.168.X.XX:/tmp/"

Como este comando esta dentro de um script PHP, dei permissão ao apache, www-data, root, administrador, os que teoricamente poderiam ser usados.
Não seu se existe diferenças entre fazer isto com uma Ditro Ubuntu, para outra CentOS.
Gente realmente necessito de uma ajuda, bem efetiva, pois meus recursos estão no fim.

me ajudem se puderem

Abs

Anderson


7. Re: Execução de script php no Linux! [RESOLVIDO]

Geraldo Albuquerque
AprendiNoLinux

(usa Ubuntu)

Enviado em 25/05/2012 - 09:13h

Estranho deve dar certo. Uso sshfs com pastas virtuais que na verdade funcionam como se fossem diretórios da minha máquina e faço cópia de arquivos de ambos os lados tranquilamente. Tanto em PHP como em SH. Como o passar do tempo fui migrando minhas rotinas de cópias para sh e retirando o que estava em php por questões de velocidade e controle de programação a nível de máquinas.

Vá passando o que está acontecendo. Dependendo, nem precisará do php para isso. Claro que o php poderá identificar se o que você quer está tudo transferido. Se bem que no meu caso, até a verificação estou fazendo em sh. O php só está sendo usado para operar páginas web mesmo.

Outro detalhe que me fez mudar de php para sh foram as chamadas system Geralmente consomem hardware do servidor sem necessidade. Se você tem muitos acesso e chamadas recursivas ao system, o php não é bom. Use sh porque estará ao mesmo nível em comandos. Usa menos memória e funciona com mais velocidade.

Editado: 9:16
O php trabalha super bem enviando comandos para sh e recebendo retorno de sh. A ponte é bem tranquila. Mesmo se precisar trabalhar em bg em algum momento.




8. Re: Execução de script php no Linux! [RESOLVIDO]

Anderson Leão Gimenes
leaogimenes

(usa Ubuntu)

Enviado em 25/05/2012 - 09:27h

AprendiNoLinux escreveu:

Estranho deve dar certo. Uso sshfs com pastas virtuais que na verdade funcionam como se fossem diretórios da minha máquina e faço cópia de arquivos de ambos os lados tranquilamente. Tanto em PHP como em SH. Como o passar do tempo fui migrando minhas rotinas de cópias para sh e retirando o que estava em php por questões de velocidade e controle de programação a nível de máquinas.

Vá passando o que está acontecendo. Dependendo, nem precisará do php para isso. Claro que o php poderá identificar se o que você quer está tudo transferido. Se bem que no meu caso, até a verificação estou fazendo em sh. O php só está sendo usado para operar páginas web mesmo.

Outro detalhe que me fez mudar de php para sh foram as chamadas system Geralmente consomem hardware do servidor sem necessidade. Se você tem muitos acesso e chamadas recursivas ao system, o php não é bom. Use sh porque estará ao mesmo nível em comandos. Usa menos memória e funciona com mais velocidade.

Editado: 9:16
O php trabalha super bem enviando comandos para sh e recebendo retorno de sh. A ponte é bem tranquila. Mesmo se precisar trabalhar em bg em algum momento.



Eu entendo e vc tem toda a razão mesmo, e tenho em um outro cliente meu a Administração inteira dos servidores usando bash.sh em quase tudo, me baseando nas rotinas com "cron", isso é muito bom mesmo.
Mas esta rotina que aqui nesta empresa gera uma "ura" de Ligação atraves de um servidor Asterisk, sempre funcionou, ao formatar o servidor que efetuava esta rotina, algumas configs, se perderam.
Não tenho no momento como mudar esta rotina, usando ".sh" tenho que manter o que tem. Como disse antes, necessito somente que este SSH entre servidores funcione, a linhas de comando dentro deste Script PHP são estas:

"scp /tmp/{$telefone}.call root@192.168.0.47:/tmp/";

"exec('ssh root@192.168.0.47 rm -rf /var/spool/asterisk/outgoing/*', $output);"

Fora isto mais nada, e ele continua pedindo senha, pois no log do ssh, esta lá a solicitação.

Caso alguem tenha uma alternativa, fico grato com a ajuda de todos.

Abs.

Anderson Leão Gimenes
PS: Quem me ajudar sinaliso como a melhor resposta, pode ter certeza.




9. Obrigado

Anderson Leão Gimenes
leaogimenes

(usa Ubuntu)

Enviado em 29/05/2012 - 16:20h

Pessoal, muito obrigado pela ajuda, mas o que estava errado, não sei dizer, pode ter sido a necessidade de resolver tudo muito rápido, e fazer algo no processo que deixou a desejar.
Voltei e fiz com bastante calma, e deu certo, as chaves foram criadas e os usuários que fazem o script funfar tiveram permissão.
Agora estou com outra dificuldade, mas esta é outra parte, tenho que abrir outro tópico.
Agradeço:

Danniel-Lara
AprendiNoLinux

Gente vcs me ajudaram bastante, e com certeza, vou migrar aos poucos estas rotinas para bash, pois nada como usar o que é "dele para ele".

abs.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts