php - 在 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);
}
我希望立即运行所有应用程序并在所有服务器上运行,但现在有些实例运行完美,有些实例永远不会运行,我可以改变什么来加快速度和修复?
解决方案
很难说,因为不会运行它的服务器没有错误消息。这些机器可能尚未perl
安装,因此无法解释脚本……或者要运行的脚本可能丢失。通过连接ssh
并尝试手动运行它 - 然后您应该会看到它失败的原因。
推荐阅读
- sharepoint - 在 C# 代码(和 Postman)中从 SharePoint 访问匿名共享链接会导致 403
- c++ - Serial 的输出完全错误-> 我做错了什么?
- c++ - avrogencpp 可以为模式中的每种类型生成单独的头文件吗?
- javascript - 从内容脚本模拟单击 chrome 扩展中的元素
- python - Ansible:循环列表的每个项目(本身是变量)
- ember.js - Ember 动态路由器重定向
- java - 如何在最后 7 位数字之前获取子字符串
- excel - VBA Excel - 定位用户窗体控件
- reactjs - 有没有办法检测查询使用的数据何时从 Apollo 客户端缓存中清除?
- reactjs - 为什么我可以在一个组件中访问 API 而不能在另一个组件中访问它?