php用ssh调用bash脚本

时间:2016-04-14 12:57:24

标签: php linux bash

尝试从php执行bash脚本(使用ssh命令),但不像在CLI上执行那样工作。

以下是bash脚本的片段(deploy_to_nagios.sh):

#!/bin/bash -x
SERVER=$1
CARRIER=$2
MANAGEMENT_NAGIOS_SERVER=$3
MANAGEMENT_NAGIOS_USER=$4

ssh -q ${MANAGEMENT_NAGIOS_USER}@${MANAGEMENT_NAGIOS_SERVER} "ls /usr/local/nagios/health_check_${CARRIER}.cfg"

在CLI中运行deploy_to_nagios.sh成功返回,但在使用

在php上执行时
$exec3 = shell_exec('deploy_to_nagios.sh '.' '.$server.' '.$carrier.' '.$nag_manage_server.' '.$nag_manage_user);

无法找到该文件。我的猜测是php正在单独运行ssh和ls命令,这就是无法找到文件的原因。 有没有办法让php执行行为与CLI上的相同,将这两个命令视为一个?

1 个答案:

答案 0 :(得分:0)

这个项目将允许PHP通过ssh获取真正的Bash shell并与之交互。在此处获取:enter image description here

然后触发你的bash脚本或直接执行命令。直接让你处理返回,而不是在bash中构建异常逻辑。

下载后,您只需使用以下代码:

if(@ChooseChartType=4)

SELECT 1 ID, 'TypeOfTest' AS ColumnName UNION 

SELECT 2 ID, 'NoOfTest' AS ColumnName UNION

SELECT 3 ID, 'Priority' AS ColumnName UNION

SELECT 4 ID, 'Purpose' AS ColumnName UNION

SELECT 5 ID, 'TypeOfRoute' AS ColumnName UNION

SELECT 6 ID, 'CreatedBy' AS ColumnName