• 締切済み

Perlでリモートコピー

こんにちは、よろしくお願いします。 Perlでファイルをリモートコピーしたいのですが、、、 UNIXの「rcp」を使用してみたのですがエラーとなってしまいました。 $cmd = '/bin/rcp'; system("${cmd} -p test.txt server1:/home/data/"); Tera Term上でプログラムしているのですが、ターム上ではエラーなく正常にコピー処理が行えます。 実行ユーザーも同じです。 # rcp -p test.txt server1:/home/data/ 何かよい方法、もしくは上記解決策等ありますでしょうか? サーバー・・・HP-UX CGI開発言語・・・Perl5 開発端末・・・windows2000(Tera Term 使用) 以上、ご教授の程よろしくお願いいたします。

  • Perl
  • 回答数4
  • ありがとう数4

みんなの回答

  • geso775
  • ベストアンサー率29% (15/51)
回答No.4

実行エラーを見ると正しくコマンドできていないときに出るものと思います。 system("${cmd} -p test.txt server1:/home/data/"); ターム上では問題なく動くならば、一度シェルを介して実行されてみてはいかがでしょうか? system("sh work.sh"); work.shにrcpコマンドを記述。

kal1119
質問者

お礼

ご回答ありがとうございます。 上記方法なら問題なく実行可能です。 やはり、シェルを介すしかないのでしょうか。 1行の命令の為にあまりプログムファイルを増やしたくないので・・・ できればPerl1本で実行させたいのですがご存知ありませんか?

  • hara_peko
  • ベストアンサー率28% (11/38)
回答No.3

rcp -p test.txt server1:/home/data/ が大丈夫ということであれば、 /bin/rcp が、違うとか・・・

kal1119
質問者

お礼

早速のご回答ありがとうございました。 /bin/rcp は、which で調べた結果ですので間違いありません。 which rcp 実行エラー内容は usage: rcp [-p] [ -S size ] [ -R size ] f1 f2; or: rcp [-rp] [ -S size ] [ -R size ] f1 ... fn directory のような感じでした。

noname#25358
noname#25358
回答No.2

 パスワードの受渡しに環境変数を使っているなら、子プロセス上で環境変数が正しく読めているか確認してみてください。

kal1119
質問者

お礼

早速のご回答ありがとうございました。 どのように確認すればよろしいのでしょうか? ちなみに実行エラー内容は usage: rcp [-p] [ -S size ] [ -R size ] f1 f2; or: rcp [-rp] [ -S size ] [ -R size ] f1 ... fn directory のような感じでした。 以上、よろしくお願いいたします。

  • xyz37005
  • ベストアンサー率51% (362/706)
回答No.1

system("${cmd} -p test.txt server1:/home/data/"); ↓ system("$cmd -p test.txt server1:/home/data/"); じゃないのかな? 間違ってたらゴメン。

kal1119
質問者

お礼

早速のご回答ありがとうございました。 しかし、上記は関係ございません。 変数の認識を確実にするために{}を使用しております。 実行エラー内容は usage: rcp [-p] [ -S size ] [ -R size ] f1 f2; or: rcp [-rp] [ -S size ] [ -R size ] f1 ... fn directory のような感じでした。

関連するQ&A

  • print文で「

    いつもお世話になっております。 早速ではありますが、 タイトル通り、print文で「""(ダブルクォーテーション)」を出力させたいです。 例えば、 open(OUT, ">>TEST.txt"); print OUT "123:456:789\n"; close(OUT); とある時、「456」だけに「""(ダブルクォーテーション)」をつけて「"456"」として出力・・・、 つまり、TEST.txt の最後の行に、 123:"456":789 と出力させるにはどうしたらよいでしょうか。 サーバー・・・HP-UX CGI開発言語・・・Perl5 開発端末・・・windows2000(Tera Term 使用) 以上、ご教授の程よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • 条件にあった特定のファイルのフォルダ名を得る

    よろしくお願いします。 階層的に存在するファイル(すべて同名)で、条件にあった記述がされているファイルのフォルダ名を得たいのですが、どのような方法が考えられるでしょうか? 漠然とした質問で申し訳ありません。 例えば、 TEST--+--A--TEST.txt      |      +--B--TEST.txt      |      +--C--TEST.txt というフォルダ階層でフォルダ"/TEST/A~/TEST/C"があり、それぞれ"TEST.txt"というファイルを持っているとします。 その中の"/TEST/B/TEST.txt"だけ"dummy"という記述が1行あったとするとき、フォルダ名"/TEST/B"を抽出したいのですが何か良い方法はあるでしょうか? (実際の各フォルダ名は規則性なくかなりの量があります) サーバー・・・HP-UX CGI開発言語・・・Perl5 開発端末・・・windows2000(Tera Term 使用) 以上、よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • クライアントの環境変数値を得る。

    よろしくお願いします。 web上からCGIを実行したときに そのCGIを実行したクライアントの環境変数値を得ることは可能でしょうか? システム環境変数の「HOME」や「TEMP」の指定先を得たいのですが。 クライアント端末はWindows2000 or XP です。 webサーバー・・・HP-UX web・・・IE CGI開発言語・・・Perl もしくは csh 開発端末・・・windows2000(Tera Term 使用)

    • ベストアンサー
    • CGI
  • ファイル中の記述文字の一括置き換えについて

    perlにてsed相当の処理を行いたいのですが ご存知の方、教えてください。 [処理内容] ・外部入力より変数定義・・・$A、$B ・ファイル「AA.txt」中記述の「$A」を「$B」に一括変更する。 単純にsystem関数でsedを使用すれば済むようでもありますが system("sed -e 's/'$A'/'$B'/g' $AA.txt > AA.tmp"); と記述すると失敗してしまいます(構文エラーではありません)。 単純に記述ミスでしょうか? 他に上記のよな処理を実現できるコマンド等ございましたら、 ぜひご教授ください。 サーバー・・・HP-UX 開発言語・・・Perl5 開発端末・・・windows2000(Tera Term 使用) 以上、よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • セレクトメニューの項目をファイルから

    よろしくお願いいします。 セレクトメニューの項目を別に作成しているテキストファイルから読み込みことは可能でしょうか? aaa.txt 北海道,青森県,岩手県,宮城県,・・・ aaa.html-セレクトメニュー  |北海道|  |青森県|  |岩手県|  |宮城県|  | ・   |  | ・   |  | ・   | webサーバー・・・HP-UX web・・・IE CGI開発言語・・・Perl 開発端末・・・windows2000(Tera Term 使用) 以上、よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • PerlでFILEを埋め込もうとするとエラー

    Perlでアクセスカウンターを作ろうと思っています。 そこでファイルオープンを勉強し、 CGIプログラムを実行しようとしたところ、 エラーが起こりました。↓ Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator, ********@*********(伏せてあります) and inform them of the time the error occurred, and anything you might have done that may have caused the error. More information about this error may be available in the server error log. ------------------------------------------ Apache/2.0.55 (Win32) Server at 127.0.0.1 Port 80 ソースを見てもおかしい所は見当たりません…↓ #! c:/perl/bin/perl open(FILE, "./sample.txt"); @data = <FILE>; close (FILE); print <<END; Content-type: text/html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html> <head> <title>sample</title> </head> <body> <p>$data[0]</p> <p>$data[1]</p> <p>$data[2]</p> </body> </html> END サーバーはApacheを使っています。 原因がわかったら教えてください。 よろしくお願いします。

    • ベストアンサー
    • Perl
  • しばらくお待ちくださいダイアログ

    よろしくお願いします。 web上で行うチェックプログラムを作成中なのですが、 チェック処理に時間がかかるため(~1分ぐらい)「しばらくお待ちください」のようなダイアログを表示させたいのですが可能でしょうか? 例えば、よくアプリなどをインストールする際に「次へ」を押して次の画面がアクティブになるまで「コピーしています、しばらくお待ちください」ダイアログを表示・・・みたいな感じのものです。 実際にはweb上で「チェック」ボタンを押して(=CGIが実行される)から、チェック画面結果のページがアクティブになるまで表示させるようにしたいです。 webサーバー・・・HP-UX web・・・IE CGI開発言語・・・Perl 開発端末・・・windows2000(Tera Term 使用) どなたか情報をお持ちの方いらっしゃいましたら、 よろしくお願いいたします。

  • Windows7でrcpコマンドを使ってUbuntuからファイルコピー

    Windows7でrcpコマンドを使ってUbuntuからファイルコピーしたいのですが出来ません。 Windows7は http://blog.heiichi.com/?eid=607869 の方法でRCPをインストールしました。 Ubuntuは10.0.4をインストールして特に何も設定していません。 テスト用にユーザーのhomeディレクトリtesttxt.txtというファイルを 作成しました。 Windows7のコンソールを開いて C:\Windows\SUA\bin をカレントに移して以下のコマンドを実行しましたら少し時間が経って 何も表示されず終了します。 rcp 192.168.1.101@naoki:testtxt.txt C:/Users/naoki/Documents 何が足りなのでしょうか? アドバイスお願い致します。

  • Apacheをlocalhostで動かしているのですが、Perlの引数

    Apacheをlocalhostで動かしているのですが、Perlの引数のないものやCGIはうまく動くのですが (設定はインターネットのサイトで調べました。)、exec cmd で Perlを呼び出すタグの入った Htmlを動かそうとしたら、Internal Server Errorになってしまいました。exec cmdの入って いないHtmlでもInternal Server Errorになってしまいました。ApacheではHtmlは動かせないの でしょうか、それとも設定がどこか問題があるのでしょうか。どなたかご存知の方よろしかったら 教えてください。よろしくお願いします。質問がここのカテゴリーでよかったのかわかりませんでした が、サーバーと書いてあったのでここに投稿しました。間違ってたらすいません。

  • Apacheをlocalhostで動かしているのですが、Perlの引数

    Apacheをlocalhostで動かしているのですが、Perlの引数のないものやCGIはうまく動くのですが (設定はインターネットのサイトで調べました。)、exec cmd で Perlを呼び出すタグの入った Htmlを動かそうとしたら、Internal Server Errorになってしまいました。exec cmdの入って いないHtmlでもInternal Server Errorになってしまいました。ApacheではHtmlは動かせないの でしょうか、それとも設定がどこか問題があるのでしょうか。どなたかご存知の方よろしかったら 教えてください。ここのカテゴリーでよいのか悩みましたが、とりあえずよろしくお願いします。

専門家に質問してみよう