2017-02-06 26 views
-1

私は2つのVMを使用しているプロジェクトで作業していますが、ローカルVMとして使用されていてアクセス可能であり、このローカルVMからリモートVMにアクセスする必要があります。これに取り組んでいるうちに問題が発生しました。ディレクトリ内のリモートにファイルがあります。スクリプトが実行されるたびに、ファイルに新しいデータがロードされますが、必要はありません。スクリプトが実行される前に毎回削除されます。sshを使用してリモートファイルを削除する方法は?

私は以下のコードを与えました。

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のは、いくつかのスクリプトをecxecutingと私はssh接続を実行し、これまで私は、以前の結果はcoming.Soも私のとき、このファイルの結果はファイルfile_scanned .Butに追加されることを見ることができます完了しました$stream = ssh2_exec($ssh, 'rm /home/nsadmin/file_scanned');。しかし、それは動作していません。

前のコマンドの実行後にファイルを削除できるように、スクリプトを変更または変更する方法に関する提案があります。

+0

'$ stream = ssh2_exec($ ssh、' rm -f/home/nsadmin/file_scanned ');' –

+0

@ amit_183 file_scannedは通常のファイルです。 –

答えて

1

は、私が言うことができる権限を持つ問題、

があるかもしれません。しかし、これは、あなたが試してみることができソリューションです。

$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'); 

これはよくリモートファイルを削除するために使用したものです。

+0

私の悪い、今すぐ答えをチェックしてください。訂正ありがとう – rahulsm