如何使用ssh删除远程文件?
How to delete a remote file using ssh?
我正在做一个项目,我们使用 2 个 VM,其中一个用作本地并且可以访问,我们需要从这个本地 VM 访问远程 VM。在处理此问题时,我发现 problem.There 是远程文件,在 directory.Every 执行脚本时,文件加载了新数据,但我不需要 that.I 希望在我的脚本执行之前每次都删除该文件。
我已经给出了下面的代码。
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 连接时,我之前的结果也是 coming.So 我做了 $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');
这是我们经常用来删除远程文件的东西。
我正在做一个项目,我们使用 2 个 VM,其中一个用作本地并且可以访问,我们需要从这个本地 VM 访问远程 VM。在处理此问题时,我发现 problem.There 是远程文件,在 directory.Every 执行脚本时,文件加载了新数据,但我不需要 that.I 希望在我的脚本执行之前每次都删除该文件。
我已经给出了下面的代码。
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 连接时,我之前的结果也是 coming.So 我做了 $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');
这是我们经常用来删除远程文件的东西。