尝试从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上的相同,将这两个命令视为一个?
答案 0 :(得分:0)
这个项目将允许PHP通过ssh获取真正的Bash shell并与之交互。在此处获取:
然后触发你的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