2012-04-02 16 views
0

ここにはどのようにありますか...指定されたパスにディレクトリが存在するかどうかを確認する必要があります。例えば パスが/ root/home/ の場合、このパスにディレクトリABCが存在するかどうかを確認します。 このようなディレクトリが存在しない場合は作成し、作成しない場合は作成します。Net :: SSH2を使用してリモートマシンにディレクトリが存在するかどうかを確認する方法

私はNet::SSH2を使用しています。 Net::SSH2を使用してファイルを作成して保存することはできますが、リモートサーバーにNet::SSH2を使用してディレクトリとファイルの存在を確認する方法はわかりません。

Net::SSH2

答えて

1

私はあなたがNet::SSH2::SFTPオブジェクトを作成するsftpメソッドを使用していると仮定?

ディレクトリが存在するかどうかにかかわらず、Net::SSH2::SFTP->mkdirメソッドを呼び出すことです:既に存在するディレクトリを作成しようとする際のオーバーヘッドは重要ではありません。

しかし、あなたは指定されたディレクトリがすでに適所にあるかどうかを見つけるには、ディレクトリが存在する場合にのみ有効Net::SSH2::Dirオブジェクトを返しますNet::SSH2::SFTP->opendir方法を、使用することができなければならない場合。

+0

ありがとうございます。今、私はディレクトリが存在するかどうかを知ることができます。私は最後の3日間それを解決しようとしていました。どうもありがとう。 私は初心者であり、perlで非常に新しいです。 私が途中で尋ねたいことは、Net :: SSH2 :: Dirオブジェクトは実際に何をしていますか?このパッケージにはどのような方法が含まれていますか?私があなたが提供したリンク上のどの方法も見ることができないからです。 –

+0

欲しいものが見つかったらうれしいです。 'Net :: SSH2 :: Dir'は' read'と呼ばれるメソッドが1つしかありません。そのリンクに文書化されています。 'Net :: SSH2 :: SFTP-> opendir'を呼び出して' Net :: SSH2 :: Dir'オブジェクトを返すと、 'Net :: SSH2 :: Dir-> read'を繰り返し呼び出して、ディレクトリ。ファイルがなくなると、メトスは 'undef'を返します。 – Borodin

+0

ありがとうございました。ありがとうございました。 –

1
#!/usr/bin/perl 

use strict; 
use warnings; 
use Net::SSH2; 
use Net::SSH2::SFTP; 
use Net::SSH2::File; 

my $host  = 'sftp.somesite.com'; 
my $path  = "/root/home/ABC"; 
my $user  = "user"; 
my $password = "passwd"; 

my $ssh = Net::SSH2->new(); 

die "Can't Connect to $host" unless $ssh->connect($host); 

if ($ssh->auth_password($user, $password)) 
{ 
    my $sftp = $ssh->sftp(); 
    $sftp->opendir($path) or $sftp->mkdir($path); 
    my $error = $sftp->error; 
    print "Error: $error\n" if (!$sftp->opendir($path)); 
} 
+0

助けてくれてありがとうございました。ディレクトリを作成するときにエラーが発生する必要があります。 $ sftp-> mkdir($ path)を呼び出すときに、ディレクトリやその他のエラーを作成する権限が拒否された場合、...? –

+0

@azharrahi - 'print $ sftp-> error if($ sftp-> error);' –

+0

ok ...私はそれを使用しました...しかし、私はそれが本当の誤りを示さないと感じました。例えば$ sftp-> mkdir($ dir)を使用してディレクトリを作成しようとすると、このディレクトリが存在しない場合はディレクトリも作成されますが、印刷エラー:SSH_FX_NO_SUCH_FILE ....なぜこのエラーが発生するのかわかりません....パスが真であるだけでなく、ディレクトリも作成されたとき。 –

関連する問題