• ベストアンサー

rshのホスト名の指定について

ゆやまといいます。 UNIXでのrshの使い方について質問です。 手元に環境がないもので。 このコマンドでhostnameのファイルの内容を表示したい。 rsh hostname cat filename このとき、hostnameに自分のIPを指定すると 拒否されてしまいます。 なぜでしょうか? rsh の問題ではなく、他に問題があるのでしょうか? よろしくおねがいします。

質問者が選んだベストアンサー

  • ベストアンサー
  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.2

> rsh hostname cat filename > このとき、hostnameに自分のIPを指定すると > 拒否されてしまいます。 (意味はあまり無いけど)自分自身に対して rsh すると拒否されてしまう のは、何故? という質問ですよね? それは、ずばり権限が無いから。 使っている環境で、どうやって rsh の権限を設定しているかわからない けど、例えば .rhosts で設定していることを考えましょう。 .rhosts には、そのホストに rsh で入ってきて良いホストを設定します よね。普通の人は、そこにわざわざ、そのホストまで書くようなことを しません。 rsh は、リモートのホストが誰であれ(例え自分でも)、きちんと socket をはって、認証の手続きをふんで、コマンドを実行します。 試しに、自分自身のホストも許可するようにしてみれば、自分に対する rsh が成功することが分かると思います。

yuyama
質問者

お礼

.rhostsをホームディレクトリに置くことによりできました。 ありがとうございます。 ただ、「stty: : Invalid argument」と表示されるのが気になりますが。

その他の回答 (2)

  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.3

> ただ、「stty: : Invalid argument」と表示されるのが気になりますが。 元々、間違ってるんじゃないですか? stty だから、.login に記述してあるのだと思うのだけれど、そこの記述が 本当に間違っている可能性が大。 rsh だけじゃなく、そのホストに、普通にログインしても、そのエラーが出て いるんじゃないでしょうか?

yuyama
質問者

お礼

そのようです。 別ユーザでログインしたところ、「stty ...」は表示されません。 .login が問題のようですね。 普通にログインしても表示されないのですが、rsh実行により表示されます。 .login は別問題なので、ここまでとさせてください。 ありがとうございました。

  • boya
  • ベストアンサー率22% (44/193)
回答No.1

hostname は、リモートのhostnameでしょ? Windowsのヘルプ参照。

yuyama
質問者

お礼

Windowsのヘルプに書いてありますね。 試してみます。 ありがとうございます。

関連するQ&A

  • rshコマンドについて

    rshコマンドを利用してローカルマシンからリモートマシンにあるバッチファイルを実行しようと思います。 以下のようにコマンドを入力して実行したところ、以下のようにエラーが出ました。何か別途定義しておく必要はあるのでしょうか。 rsh リモートホスト名 -l リモートのユーザ名 -n バッチファイル名 ホスト名:接続が拒否されました rsh:can't establish connection

  • rshのコマンドの書き方について

    rsh server cd temp rsh server ls など、rshの単体コマンドに関してはすでに通る状況になっています。 しかし、今回やりたいのは 「tempフォルダに降りてきて該当ファイルを削除し、その結果を表示」 などのシェルで書くならば複数行に当たる内容になります。 これも何とかできるでしょうか? rcpでシェルスクリプトを転送して、 rshで向こう側で実行して、 rshでrmする方法も考えたのですが、いまいち鬱陶しいんで スムースに書けたらなと思いました。 とりあえず、test.rshにコマンドをずらっと書いての rsh server -ni <test.rsh ではダメでした。 関係ないでしょうがOSはSorarisです。

  • LinuxからWindowsサーバへのrsh

    はじめてですが、Unix/LinuxからWindows2000サーバおよび2003サーバへのrshを起動するために必要な環境について質問をさせていただきます。 逆向き(WindowsからUnix)については実績があります。 リモートホストのWindows側のhostsファイルにUnixのアドレスと名前を登録、ローカルホストのUnix側のhostsや.rhostsファイルにWindowsのアドレス、名前、ユーザ情報を登録するとWindows側でUnixコマンドが遠隔起動できます。 今、実現したいのは、Unix/Linuxをリモートホスト、Windows2000サーバおよび2003サーバをローカルホストとしてUnix/Linux側からWindows側の処理を遠隔起動することです。 hostsや.rhostsファイルは、設定する側が逆になるだけで、考え方は同じと思われます。 Windows側でrshのデーモンプロセスが起動している必要があると思われます。 巷では、WindowsにSFUやSUA(Unixエミュレータ)を導入すればできるという情報が多い様です。 SFUやSUAを導入せず、rshのデーモンプロセスを単独でかつフリーで入手することは可能でしょうか? Windowsのバージョンにより、デーモンプロセスが標準で装備されていたり、別途導入する必要があったりするのでしょうか? よろしくお願いいたします。

  • rshを使用したバッチファイル

    今、あるサーバにPCからシェルをFTPして、RSHでFTPしたシェルを実行するバッチファイルを作成していますが、 コマンド1行づつをカット&ペーストで実行すると正常に動作するのですが、バッチファイルをWクリックすると、FTP は正常に動作するのですが、RSHの処理がされず、ループ? (ループの記述はなし)してしまいます。 *ECHO ONでじっこうすると、RSHの行は呼ばれているみたいですが、処理が失敗しているようです。 バッチファイルでの設定に問題があるのでしょうか? <バッチの内容 start> *IP、パス、ユーザ名は伏せさせていただきます。 ftp -s:d:\PATH\send.txt XXX.XXX.XXX.XXX rsh XXX.XXX.XXX.XXX -l USRNAM -n "chmod +x /PATH2/rsh.sh;source /PATH3/envsetUSRNAM;PATH4/rsh.sh" <バッチの内容 end>

  • AIX→Windows7へのrsh

    AIX→Windows7へのrshコマンドがPermission deniedにより実行ができません。 <環境>  AIX 6.1  Windows7 64bit (SUA導入済み) <現状>  Windows7 → AIX へのrshは実施可能です。  AIX → Windows7へのrshがNGです。 <エラー>  Permission denied. <今行っている設定>  Windows側   ・/etc/inetd.confの編集     $ cat inetd.conf | grep rsh     shell stream tcp nowait NULL /usr/sbin/in.rshd in.rshd -a     #shell stream tcp6 nowait NULL /usr/sbin/in.rshd in.rshd -a   ・.rhostsの作成     C:\Users\Administrator\.rhosts 何か設定項目で足らないものや、間違いなどあればご指摘願います。

  • rshを使うスクリプトをバックグラウンド実行

    Linux+Perlでのお話です。 内部でsystem関数を使ってrshコマンドを実行しているperlスクリプト(以下、スクリプトAという)があります。 スクリプトAをフォアグラウンドで実行するとうまく流れるのですが、バックグラウンド実行すると、rshコマンドを実行した直後でjobが止まってしまいます。 もっと詳しく言いますと、スクリプトAのrshコマンドは、ディスクを共有しているリモートマシンに対して、スクリプトBを実行するように指示しています。 スクリプトBではとある計算を行なっており、その計算結果をファイルに出力しています。 そして、その結果をスクリプトAで読み込んで後処理を行うというものです。 ----- …(前処理)… system("rsh (ホスト名) \"(スクリプトB実行コマンド及び引数) 1> /dev/null 2> /dev/null\""); # ここでjobが止まってしまいます。 # ここで標準出力(ログファイルにリダイレクトしてる)に何か出力しようとしても、何も出力されてません。 (スクリプトBの結果ファイルの読み込み) …(後処理)… ----- Jobが止まってしまうと言っているのは、jobsコマンドで見ると"job stopped"となっている状態のことを言っています。 この状態でスクリプトBの結果はファイルに出力されているので、rshのコマンドはうまく投げられていると思います。 (「rshやsshは標準入力が期待されてるとバックグラウンド実行が出来ない」(?)というような記述をどこかで見かけたので、念のためrshに"< /dev/null"の記述を加えてもみたのですが、変わりませんでした) その後、止まっているjobをfgコマンドでフォアグラウンドで再開させると、最後まで問題なく実行されます。 フォアグラウンドで実行すればうまくいくのに、バックグラウンドで実行すると止まってしまうのが理解出来ません。 これは何が原因なのでしょうか。 そして、どうしたら解決出来るのか。 どなたかご存知でしたら、ご教示頂きたくお願い致します。

    • ベストアンサー
    • Perl
  • cat でファイルの拡張子を指定

    基本的なことで申し訳ないんですが、 UNIXのcat コマンドでファイルの中身を出力するときに、カレントディレクトリでないファイルを出力するには、パスも書きますよね。 cat パス/ファイル名 catでパスを指定して使うときに、 パスを繰り返し書かないで、 (その指定したディレクトリ直下だけでいいので)複数の特定の拡張子のファイルのみ出力するには、どうすればよいのですか? 例えば、 拡張子が、cとcsとtxtのファイルだけ出力して、その他のファイルは出力しない というようなときです。 既に書いたとおり、パスは繰り返して書かないので、 cat パス/*.c パス/*.cs パス/*.txt のようなものはナシということでお願いします。

  • javaアプリケーションからコマンド実行結果の取得

    javaアプリケーションからcatコマンドを実行し、その結果を取得したいのですが、うまくいきません。runtime.exec()実行中にエラーとなります。 String cmd = "cat error.log; echo $status"; Runtime runtime = Runtime.getRuntime; Process process = runtime.exec(cmd); rshを使うとOKです。 "rsh localhost cat error.log; echo $status" shを使うとNGです。 "sh -c cat error.log; echo $status" "sh -c \"cat error.log\"; echo $status" ターミナルからは上記で内容取得、および、結果取得はできるのですが。 環境は、UNIX JDK1.2.1です。 よろしくお願いします。

  • Visula Basic6.0からUNIXサーバーのシェルの起動について

    VB6.0からUNIX上のshellを起動したいのですが、良い方法を教えて下さい。 WindowsNT/2000では、以下の方法を考えていますが、Win98ではRSHコマンドが使用できないため困っています。 WindowsNT/2000 shell関数でPC上のバッチファイルを起動。 バッチファイルからRSHコマンドを使用しUNIXのshellを起動。

  • RSHコマンドでのsqlplusの起動

    RSHコマンドを使用し、リモートサーバのsqlplusを操作したいと考えています。 検証環境として、ローカルサーバ(RedHat Linux7.2)、リモートサーバ(RedHat Linux6.2)で検証を行い、うまくいったので本番環境としてローカルサーバ(RedHat Linux7.2)、リモートサーバ(Solaris8)で検証を行ったところうまく動いてくれません。 rsh -l oracle リモートサーバ名 sqlplus 上記のコマンドを打つとsqlplus not foundと帰ってきます。検証環境ではちゃんとOracleのプロンプトが帰って来てたのですが。一応自分ではLinuxとSolarisのRSHの違いかなと思いつつ・・・。かといってOracleのほうの設定も間違っているのかと思い質問させて頂いています。 sqlplus not foundとでてくるのでフルパスで書けば大丈夫なのかと思い rsh -l oracle リモートサーバ名 $ORACLE_HOME/bin/sqlplus と打つと以下のエラーが帰ってきます。 message file sql<lang>.msb not found Error6 initializing SQL*Plus どなたか、同じような経験、解決策などご存知の方がいらっしゃいましたらお知恵をお借りできればと思います。 よろしくお願いします。