Quando uma página da web é carregada no servidor A, eu quero que ela execute um script no servidor B. Eu posso fazer isso com uma série de comandos do servidor A, entrando no servidor B e executando o script, mas ele precisa ser feito tudo em uma declaração para que o PHP possa executá-lo.
Isso funciona:
user@A$ sudo -u www-data bash
bash: /home/user/.bashrc: Permission denied
Então:
www-data@A$ ssh -i /etc/ssh/www-data/id_rsa remote@B
Welcome to Ubuntu 12.04.1 LTS (GNU/Linux 3.2.0-32-generic x86_64)
Então:
remote@B$ /home/web/script.php
(sem saída, mas eu posso ver os resultados no banco de dados)
Então, posso ver que todos têm acesso para receber a mensagem para onde está indo. Mas quando tento combiná-lo em uma declaração:
user@A$ sudo -u www-data bash
bash: /home/zen/.bashrc: Permission denied
(como seria o apache / php)
www-data@A$ ssh -i /etc/ssh/www-data/id_rsa remote@B '/home/remote/script.php'
então eu recebo:
bash: /home/remote/script.php: No such file or directory
Welcome to Ubuntu 12.04.1 LTS (GNU/Linux 3.2.0-32-generic x86_64) ....
Ele também me mantém logado no B, que é irrelevante, mas estranho.
Então, assim como um teste de sanidade, eu continuo de lá para executar o script:
remote@B$ /home/remote/script.php
Agradecemos antecipadamente por qualquer conselho !!