0

何かを更新するときにbashスクリプトを実行しようとしています:

public function reloadServer()
{
    exec ('/var/www/html/script', $y);
    Zend_Debug::dump($y);
}

これはscriptファイルです

#!/bin/bash
# test
ssh root@192.168.526.33 "server -rx reload"
echo "success"

何が起こるかというと、successメッセージは取得されますが、コマンドは実行されません。コマンドを手動で実行すると、問題なく動作します

注:ssh2_execサーバーに問題があるため使用できません

何が起こっているのか、またはそのbashスクリプトをどのようにデバッグできますか?

4

1 に答える 1

1

コマンドをサブシェル内に配置し、その出力をティーします。

#!/bin/bash
# test
( ssh root@192.168.526.33 "server -rx reload" ) 2>&1 | tee -a /some/where.log
echo "success"

これにより、bash からの可能性のあるメッセージを含むすべてのメッセージが表示されます。

于 2013-08-24T17:43:01.833 に答える