Я работаю над проектом, в котором мы используем 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-соединения Iam выполняет некоторый скрипт, и результат этого файла добавляется в файл 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');
Это частая вещь, которую мы использовали для удаления удаленных файлов.
Других решений пока нет …