gpt4 book ai didi

php - 如何使用ssh删除远程文件?

转载 作者:行者123 更新时间:2023-12-02 14:13:50 24 4
gpt4 key购买 nike

我正在开发一个项目,我们使用 2 个虚拟机,其中一个用作本地虚拟机,可以访问,并且我们需要从该本地虚拟机访问远程虚拟机。在处理此问题时,我遇到了一个问题。目录中的远程目录中有一个文件。每次执行脚本时,该文件都会加载新数据,但我不需要它。我希望该文件是每次在我的脚本执行之前都删除。

我已经给出了下面的代码。

if($ssh = ssh2_connect('192.168.150.85', 22)) {
if(ssh2_auth_password($ssh, 'someUserName', 'somePassword')) {
$stream = ssh2_exec($ssh, "python file_scanner.py /home/nsadmin/$file_name");
$stream = ssh2_exec($ssh, 'rm /home/nsadmin/file_scanned');
stream_set_blocking($stream, true);
$data = '';
while($buffer = fread($stream, 4096)) {
$data .= $buffer;
}
fclose($stream);
echo $data; // user
}
}

在这里我们可以看到,在 ssh 连接之后,我执行了一些脚本,并且该文件的结果被附加到文件 file_scanned 中。但是当我执行 ssh 连接时,我之前的结果也会出现所以我做了 $stream = ssh2_exec($ssh, 'rm/home/nsadmin/file_scanned'); 。但它不起作用。

有关如何更改或修改我的脚本的任何建议,以便我可以在执行上一个命令后删除该文件。

最佳答案

可能存在权限问题,我可以说,

但这是您可以尝试的解决方案。

$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$sftp = ssh2_sftp($connection);
$stream = ssh2_sftp_unlink($sftp, '/home/nsadmin/file_scanned');

这是常见的事情,我们用它来删除远程文件。

关于php - 如何使用ssh删除远程文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42061112/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com