1

好。我有一个很大的基础可以去。我只是不知道该怎么做。使用 exec() 函数。但我认为我真的只需要帮助进行远程 SSH。其余的我已经有点理解了

我在 5 台服务器上有一个 perl 脚本需要更新,而自动执行此操作的最佳方法是从远程服务器上的管理面板。

php 文件需要从 MySQL 收集服务器 ips、用户名、密码 + .pl 的目录,同时还发送刚刚发送的 post 数据,然后通过 SSH(从每个变量)发送该数据并使用命令执行带有发布数据(来自 php 文件)作为参数的远程 perl 脚本。

基本上:PHP(+post data) -> SQL(gets table info) -> perl -> (SSH -> perl)[重复直到没有更多的服务器需要更新]

它越快越简单越好。如果可以删除任何步骤以加快速度,那就太好了,除非它降低了安全性。

我真的不知道该怎么做,因为我仍在尝试学习 Perl 和 SQL

4

1 回答 1

0

您可以在服务器之间设置 ssh无密码身份验证,在不同服务器上的相同路径中设置和测试脚本,并在 PHP 脚本中编写

for($hostname in $hosts)
    system("ssh $hostname -c 'perl /path/to/my/script.pl'")

或者您可以设置公钥/私钥身份文件并执行以下操作:

for($hostname in $hosts)
    system("ssh $hostname -i ~/.ssh/identity_file -c 'perl /path/to/my/script.pl'")
于 2013-02-04T02:47:18.067 回答