Linux間のリモートシェルの実行について

このQ&Aのポイント
  • LinuxサーバからrshでリモートのLinuxサーバのシェルを起動できない状況について
  • rsh実行時にエラーメッセージがなく正常に実行されたかのように終了してしまい、原因がわからない
  • Linuxのコマンドは正常に実行できるが、rshでのシェル起動ができない
回答を見る
  • ベストアンサー

Linux間のリモートシェルの実行について

マシンタイプ:x225 カーネル: 2.4.20-28.7smp OS:Red Hat Linux 7.3 2.96-126)) 上記のLinuxサーバからrshで同じタイプのリモートのLinuxサーバのシェルを起動しようとしましたが正常に起動されません。 状況としては rsh実行時は特にエラーメッセージが出ることもなく、正常に実行されたかのように終了してしまうため、何が悪いのかもわからない状態です。 実行したコマンドとリモート側のシェルの内容は以下の通りです。 rsh server1 /home/test/testrsh.sh <testrsh.sh> #!/bin/ksh time=`date` echo "rsh test $time" >> /home/test/testrsh.log ちなみに rsh server1 date や rsh server1 uname 等のLinuxのコマンドは正常に実行できます。 どこを確認したらよいでしょうか? よろしくお願いします。

  • moxa
  • お礼率51% (71/137)

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

  • ベストアンサー
  • cynthia4
  • ベストアンサー率51% (186/358)
回答No.4

solaris10 の ksh で Local での実行は異常がなかった。 Login したaccount での実行だが // time というコマンド があるので、変数としてtime はどうかな // 関係ないと言えば関係ないが rsh で実行できていないことになるが local でやったらどうなりますか // 出来るのなら、やっていると思うが shell-script でなく やはり、コマンドで先ずやってみたらどうですか $ rsh server1 time=`date` $ rsh server1 echo "rsh test $time" これが動作するか。

moxa
質問者

お礼

cynthia4さん 何度もありがとうございます。 該当のシェルですが、既にリモート側にログインして実行していますが、 そちらでは問題なく実行できています。 あと、ご指摘のあった所の確認をしてみました。 コマンド全てをリモートシェルに変えたシェルを作成して実行しました。 <sendrsh.sh> #!/bin/ksh p=`rsh server1 date` rsh server1 echo "rsh test $p" こちらは問題なく実行できています。 変数名「time」に関しては問題なく実行できていますが、 他に同名のコマンドがあるという事で使用は好ましくないと思います。 修正しようと思います。 他になにか思い当たることはありますか? よろしくお願い致します。

その他の回答 (6)

  • notnot
  • ベストアンサー率47% (4846/10257)
回答No.7

実は正常に実行されているのでは? どういう現象を以て「正常に起動されていない」と判断していますか? server1 上の /home/test/testrsh.log に、下記のように書かれていれば正常です。 rsh test Tue Jun 17 23:39:30 JST 2008 書かれてないとすると、/home/test か /home/test/testrsh.log の書き込み権限がないのでしょう。

moxa
質問者

お礼

みなさん、いろいろとご回答ありがとうございました。 書き込み権限の問題でログファイルが作成されなかったのではなく、 想定していた場所以外の場所でログファイルが作成されていた事がわかりました。 再度シェルの内容を確認してみたところ、 ログの書き出し先が質問文で書いた  /home/test/testrsh.log ではなくて  ./testrsh.log となっていました。 シェルの中でカレントディレクトリの変更はしていないので、 当然ログファイルは「/home」配下に作成されます。 みなさんに様々な回答を頂いてこの結末・・・・。 お恥ずかしい限りです。 どうもありがとうございました。

  • cynthia4
  • ベストアンサー率51% (186/358)
回答No.6

こうかも echo "rsh test $time" ">>" /home/test/testrsh.log http://www.linux.or.jp/JM/html/netkit/man1/rsh.1.html

  • t-okura
  • ベストアンサー率75% (253/335)
回答No.5

rsh server1 /bin/ksh /home/test/testrsh.sh と実行するとどうなりますか。

  • cynthia4
  • ベストアンサー率51% (186/358)
回答No.3

ssh で shell (bourne) では問題ないが // 条件の違いもあるが ksh の理由は解りませんが ksh で動作させているなら コマンドで、これがそもそも $ time=`date` $ echo $time は、正常ですか。ksh は解らないので基本的な所から //ksh を install する気になれないし。 // echo でも良いのだが、ksh ではprint を使うとか??

  • cynthia4
  • ベストアンサー率51% (186/358)
回答No.2

erorr を 画面に出した方がよいのではないか echo "rsh test $time" 2>&1 >> /home/test/testrsh.log ksh でもこのくらいは同じだと思うが

moxa
質問者

お礼

ご指摘ありがとうございました。 さっそくシェルを修正してやってみましたが、 何も出力されませんでした。 という事は、リモート側のシェル自体が起動されていないという事でしょうか。 となると怪しいのは↓でNO.1の方が書かれていた実行権限ですが、 それも問題ないと思います。 難しいですね・・・。

  • t-okura
  • ベストアンサー率75% (253/335)
回答No.1

rsh でログインしているユーザは /home/test/testrsh.sh の実行アクセス 権を持っているでしょうか。

moxa
質問者

お礼

ご回答ありがとうございました。 質問文に情報が足りず申し訳ありません。 リモート側のシェルの権限は フルアクセスの状態(777)です。 他にどこを疑ったらよいのでしょうか・・・。

関連するQ&A

  • 【Linux】シェルの実行方法を教えて下さい。

    【Linux】シェルの実行方法を教えて下さい。 ファイルの中身が#!/bin/bashで始まる拡張子shのシェルがあります。 これを実行するには、どのようなコマンドを打てばよいのでしょうか? 1.rootでログイン。 2.test.shがあるフォルダに、cdで移動する。 3.test.shと入力し、Enterキーを押す。 ↑みたいな感じで良いのでしょうか。 テスト用サーバなので、最悪壊しても良いと上司に言われましたが、 なにぶん時間がないため質問させていただきました。 Redhatでバージョンが3か4だったと思います。 よろしくお願いします。

  • Linuxでシェルスクリプトがフルパスだと実行できない

    Linuxでシェルスクリプトがフルパスだと実行できない こんにちは 現在linuxでシェルスクリプトを記載していて、やっと出来た!と思ったら、なぜかフルパスで実行すると失敗します。 中身は例えば #!bin/sh echo "hello" とし、ファイル名をtest.shとします。 実行時にカレントからだと上手くいきます。 ./test.sh ただし、フルパスで実行するとうまくいきません。 ./home/user/test.sh エラーは以下 bash: ./home/dv3/tet.sh:No such file or directory 所有者はrootでグループもrootにしてあります。 シェルの権限は755にして、rootで実行しています。 なぜカレントだと上手くいき、フルパスだと上手くいかないのでしょうか? パスが必要なコマンドも入っていないのに。。。 どなたかご教授いただけると幸いです。 宜しくお願い致します。

  • シェルの実行中にユーザ切り替えてコマンド実行

    はじめまして。 シェル初心者です。 shell.shをrootユーザでクーロン実行していますが、 shell.shの処理の中で、違うユーザでコマンド実行したいのですが、 可能かどうかも、方法が分かりません。 教えていただけないでしょうか。 環境はLinuxです。 下記のコマンドを実行したいです。 リモートでログインしてコマンド実行結果を取得する ssh -l tomcat server_tomcat grep test /tmp/test.log ※他のユーザでsshを実行してコマンド結果を取得したいです。 以上。宜しくお願い致します。

  • リモートシェルについて

    TCP/IPのユーティリティであるリモートシェルについてですが、あるPCではどのユーザー(administrator,PowerUser,Userなど)でも rshが実行できるのですが、あるPCではadministrator権限を持つユーザーしかrshが実行できません。どちらもセットアップしたばかりのPCであり、二つを並べて比べたのですが、違いが見つかりません。rshを「どのユーザーでも実行できる条件(設定)」などがわかれば 教えていただきたいのですが。 ちなみにadministrator以外のユーザーで実行すると rsh:shell/tcp unknown service というメッセージが出て実行できません。

  • なぜLinuxでKornシェルが使えるのでしょうか?

    Linux初心者です。 シェルについてわからないことがあり、質問させていただきます。 Linux(Red Hatを使っています)の /bin/shと/bin/cshは、それぞれ/bin/bash、/bin/tcshのシンボリックリンクファイル、 なのに対して、なぜkshだけは/bin/kshそのままなのでしょうか? また、KornシェルはAT&T社が開発したものだそうですが、 これはLinuxで使う際にライセンスの問題に触れないのでしょうか? よろしくお願いいたします。

  • LinuxでKornシェルが使えるのは何故でしょうか。

    Linux初心者です。 シェルについてわからないことがあり、質問させていただきます。 Linux(Red Hatを使っています)の /bin/shと/bin/cshは、それぞれ/bin/bash、/bin/tcshのシンボリックリンクファイル、 なのに対して、なぜkshだけは/bin/kshそのままなのでしょうか? また、KornシェルはAT&T社が開発したものだそうですが、 これはLinuxで使う際にライセンスの問題に触れないのでしょうか? よろしくお願いいたします。

  • perlからsystemコマンド呼ばれる時のシェルについて

    HP-UX/perl4 で作成したスクリプトを、Linux(Red Hat)/perl5 へ移植するに当たって、system関数の動作が異なり困っています。 HP-UX では ksh をシェルとして使用していたため、perl からのsysytem関数で実行するsystemコマンドも、kshで動作するものを使っていました。Linuxでもログインシェルをkshに設定しました。 ところが、HP-UXで使っていたprintコマンドが使用できず、以下のエラーメッセージが出ます。 sh: print: command not found シェルはkshを指定していても、perlからsystem関数やバッククウォート`` でシステムコマンドを実行するときは、shが使われるようなのです。 perl内の記述は以下のとおりです。 system("print 'a'"); "print"の前に"ksh "をつけたり、"print"を"echo"に変えると、正しく動作します。 移植するperlの本数が多いのと、print以外にもこの問題が起きるかもしれませんので、できれば perl 内からのシステムコマンド実行時にもログインシェルとおなじ ksh で動くようにしたいのですが、どのようにすればよいのでしょうか? よろしくお願いいたします。

  • Linuxのシェル(sh,bash等)について

    Linux上でコマンドを実行するとき、その窓口となるものが、シェル(sh,bash)という認識です。 つまり、 (1)CUI環境でLinuxを操作する上で、シェル以外でコマンドを実行する事はありうるのか? (2)Windowsのコマンドプロンプトも一種のシェルと言えるか 以上、2点についてお教え頂きたいです。 宜しくお願いします。

  • シェル(foreachを利用した)教えて

    Foreachを使ったシェルの作成について教えて下さい。 全くの初心者です。 何台かのサーバ(Solaris)のバージョンをリモートログインして 情報を収集したいのです。 .rhostsファイルに設定しているのでパスワード入力は省略できます。 Foreachを使用して、かなり無理やりですが、こんな感じかと つなぎ合わせてみたのですが・・・・ Foreach H (`192.168.3.2`|`192.168.3.9`) echo ${H},rsh ${H} ’uname -a’ | 収集したいことは 数台あるサーバへリモートログイン(192・・適当なアドレスです) して uname -aコマンドのバージョン情報と 取得したアドレスを 一覧表示したいのですが・・・ シェルも初心者なので、すみません 教えて下さい。 収得した結果一覧 アドレス   バージョン 192.168.3.2   10

    • ベストアンサー
    • PHP
  • unixからwindowsへリモートシェルを実行したい

    unixからwindows2000serverのプログラム(VBのexeファイル)を リモートで実行したいのですが、何か良い方法がありました教えて下さい。 また、unix側、windows側でインストールすべきS/W等がありました教えて頂けますでしょうか。 よろしくお願い致します。 参考までに、以下の内容は自分で調査しましが、実現には至りませんでした (何かが間違ってるのかもしれませんが・・・)  ・SSH(unix・winそれぞれに設定方法がよくわからない)  ・unixからtelnetログイン(telnetログイン・UID/PASSWD入力・winプログラム   実行を自動化(シェル化)の仕方がわからない)  ・unixからrshを実行(windows2000ではrshを受付けない?)