首页 > 解决方案 > 在 Linux 服务器上使用 php 和 bash 在多个服务器上执行命令的问题

问题描述

我正在设置新应用程序并希望在我的所有服务器上执行脚本(实际上是 16)。我做错了什么?

我的 bash 文件:

for (( c=1; c<=16; c++ ))
do
URL="http://s$c.domain.com/api.php?script=$scriptl&a1=$port&a2=$AUTHKEY"
screen -dmS apprun$c wget -q $URL #for faster exec bash script i run on screen
done
;;
esac

我的 api.php:

<?php
if(isset ( $_GET['script']) ) {
    $script = $_GET['script'];
    $port = $_GET['a1'];
    $cmd = "cd /home/scripts/ && perl $script $port"; 
    shell_exec($cmd);
}

我希望立即运行所有应用程序并在所有服务器上运行,但现在有些实例运行完美,有些实例永远不会运行,我可以改变什么来加快速度和修复?

标签: phplinuxbash

解决方案


很难说,因为不会运行它的服务器没有错误消息。这些机器可能尚未perl安装,因此无法解释脚本……或者要运行的脚本可能丢失。通过连接ssh并尝试手动运行它 - 然后您应该会看到它失败的原因。


推荐阅读