• ベストアンサー
  • 困ってます

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のコマンドは正常に実行できます。 どこを確認したらよいでしょうか? よろしくお願いします。

共感・応援の気持ちを伝えよう!

  • 回答数7
  • 閲覧数3320
  • ありがとう数8

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

  • ベストアンサー
  • 回答No.4

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

共感・感謝の気持ちを伝えよう!

質問者からのお礼

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

関連するQ&A

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

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

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

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

  • リモートでバッチを実行(Windows)

    お世話になります。 クライアントサーバ(Windows2003Server)からリモートサーバ(Windows2003Server)に 存在するバッチファイル(Remote.bat)をリモートで実行する方法(コマンド)をご教授ください。 方法としては、Client.bat(クライアントサーバに存在)というバッチファイルから、 Remote.batを実行したいです。 Unixのrshコマンドみたいなイメージです。 宜しくお願いします。

その他の回答 (6)

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

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

共感・感謝の気持ちを伝えよう!

質問者からのお礼

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

  • 回答No.6

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

共感・感謝の気持ちを伝えよう!

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

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

共感・感謝の気持ちを伝えよう!

  • 回答No.3

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

共感・感謝の気持ちを伝えよう!

  • 回答No.2

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

共感・感謝の気持ちを伝えよう!

質問者からのお礼

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

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

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

共感・感謝の気持ちを伝えよう!

質問者からのお礼

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

関連するQ&A

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

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

  • 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で実行しています。 なぜカレントだと上手くいき、フルパスだと上手くいかないのでしょうか? パスが必要なコマンドも入っていないのに。。。 どなたかご教授いただけると幸いです。 宜しくお願い致します。

  • リモートでファイルを実行する方法について

    仕事の関係でクライアント(WindowsXP)端末からリモートで サーバー(Windows Server 2003)にあるCドライブの直下にある BATファイルを実行したいのですがそれを実現するには どうすればよいのかお教えください。 UNIXではrshでいうのがありますがWindowsのコマンドでそれに 見合うのはないと聞きました。VBSでもいいので実現する方法に ついてご教授ください。 よろしくお願いします。

  • Linuxのコマンドでcronから実行パスを確実に取り出すにはどうした

    Linuxのコマンドでcronから実行パスを確実に取り出すにはどうしたらいいでしょうか? 具体的には下記から"/home/test/test.sh"の部分を確実に取り出したいです。 */5 * * * * /home/test/test.sh > /dev/null sedとcutを使って取り出す方法はありますでしょうか? パスは場合によって変わる場合があり、test.shのみいつも同じです。 test.shより前の空白までを取り出せればよいのですが、 何かいい方法はありますでしょうか?

  • シェル(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
  • 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 どなたか、同じような経験、解決策などご存知の方がいらっしゃいましたらお知恵をお借りできればと思います。 よろしくお願いします。

  • rshコマンドが実行できない

    rshコマンドを使ってWhiteBoxLinux3(ローカル)からHP-UX B11.23(リモート)上のプログラムを実行したいのですが、"rsh <ホスト名> -l <ユーザ名>"は正常に動作するが、"rsh <ホスト名> -l <ユーザ名> date"を実行すると、プロンプトが返ってきません。リモートホストの.rhostsは、+ +でパーミッションは600です。tcpdumpでパケットを見てみたんですが、いまいち分りません。情報が少なくて申し訳ありませんが、どなたかデバッグのヒントをご教授いただけないでしょうか?

  • AIXのrshにて、コマンドが実行出来ない。

    AIXのrshにて、コマンドが実行出来ない。 AIXにて、rshを使用してサーバAからサーバBへコマンドを発行したいのですが、 以下エラーが表示され、コマンドが実行できません。 なにかご存知でしたら、ご教授願います。 <やりたいこと> サーバAからサーバBへユーザBにてrsh接続し、コマンドを実行したい。 コマンド(サーバA上で) $ rsh サーバB -l ユーザB "コマンド" rshd: 0826-826 The host name for your address is not known. 尚、以下コマンドは使用可能で、ログインできます。 $ rsh サーバB -l ユーザB <設定> サーバBのユーザBのホームディレクトリに.rhostsを設定。 初歩的な質問かも知れませんが、宜しくお願い致します。

  • cygwin上でvbscirptを実行する方法

    cygwinのコンソール画面で、hello.vbsというvbsファイルを起動し、vbスクリプトを実行する イメージです。 実現したいことは以下です。 UNIXサーバから、rshコマンドで、Windowsサーバのシェル(cygwin上)を実行する。 Windowsサーバのシェルは、さらに、vbscirpt(拡張子.vbs)を内部で実行する。 本来は、Windowsサーバのシェルのみで実装したいのですが、vbscriptで動作させる方法 しか分からないので、上記方法をとりたいと思っています。

  • Windows→UNIX間におけるrcpについて

    Windows Server 2008(SUAインストール済み)からrcpを実行し、 UNIXサーバからファイルをコピーしてくる処理を行おうとしています。 しかしながら、以下のコマンドを試してみても、 上記の処理を実現することができません。 わかる方いましたら教えてください。 (1)rcp <リモート先ホスト名>.<リモート先ユーザ名>:/export/home/<リモート先ユーザ名>/<テストファイル名> C:\temp\<テストファイル名>  上記コマンドを実行すると以下のメッセージが返ってきます。(エラーレベルは0)  sh: /usr/bin/rsh<リモート先ホスト名>.<リモート先ユーザ名>: not found (2)rcp <リモート先ユーザ名>@<リモート先ホスト名>:/export/home/<リモート先ユーザ名>/<テストファイル名> C:\temp\<テストファイル名>  上記コマンドを実行してもメッセージなし。(エラーレベルは0) サーバ間の疎通については、 ホストネーム指定によるpingで応答がありました。 また、rhostsファイルの設定については、 Windows→UNIX間でrshができることを確認していますので、問題はないと判断しています。 よろしくお願いいたします。