我想使用 PHP 运行一个 shell 脚本,将文件从服务器 1 发送到服务器 2。我将服务器 1 的公钥写入服务器 2 的授权密钥,它运行良好。
由于某种原因,以下脚本实际上并未将文件从服务器 1 发送到服务器 2:
// This is a webpage at http://server1.com/sendfile.php
<?php
if($_POST['a'])
{
echo '<pre>';
echo passthru('./scp.sh');
echo '</pre>';
}
?>
<form method="post">
<button name="a" value="Af">Send File</button>
</form>
//This is the contents of scp.sh
scp ../dbexport/db.txt someuser@server2.net:
因此,当我scp.sh
从终端执行时,一切正常 - 文件实际上被发送和接收。
但是当我去http://server1.com/sendfile.php
按下按钮时,php文件实际上执行了shell文件(我通过在scp命令之前和之后放置echo语句来确认这一点),但是server2.com从未成功接收到该文件
有谁知道这可能是为什么?