私はperlを使い慣れています。私は、server_nameとファイル名をフィールドとして持つパイプで区切られた行を持つ入力ファイルを持っています。ファイル名には、入力フィードファイルにワイルドカード(*)が含まれています。 実際のファイル名の後にタイムスタンプが付きます。ssh in perlスクリプト
Ex: Actual files in remote servers
server_1/abc_20110801.txt
server_1/abc_20110802.txt
server_1/abc_20110803.txt
server_2/xyz_20110801.dat
server_2/xyz_20110802.dat
Ex: Input feed file
server_1|abc_*.txt
server_2|xyz_*.dat
私は、リモートサーバーへのSSH、ファイルを読み込むと「最新の」ファイル(この場合はSERVER_1/abc_20110803.txtとserver_2の/ xyz_20110802.dat)のタイムスタンプを捕獲しようとしています。 すべてのリモートサーバーへのsshキーは、ユーザーIDとパスワードを渡す必要がないように既に設定されています。
私は、ファイルは、以下のものを使用して、同じサーバーに存在する場合、これを行うことができるよ:
my @list_files = map { chomp; $_ } (`ls -t $wild_f_nme`);
my $f_nme=$list_files[0];
my ($accesstime, $modtime, $createtime, $fsize) = (stat($f_nme))[8,9,10,7];
私は、リモートサーバにあるファイルのタイムスタンプをチェックするために、これをどのように行うだろう。私は各サーバーのssh接続を開始する必要があります。
FYI - モジュール(Net :: OpenSSHなど)をインストールできません(できません)。 これは、次のようなものを使用して達成できますか?あなたはglobとファイル名が多少スムーズに取得することができます
my @list_files = map { chomp; $_ } (`qx/ssh $serv_nme ls -t $d_loc/$wild_f_nme`);
あなたが.plのファイルを書き込むことができる場合、あなたはモジュールをインストールすることができます。 [ここ](http://www.perlmonks.org/?node_id=128077#permission)を参照してください。応答のために – jiggy