- ベストアンサー
teratermで多段ログインのコマンド
質問者は質問内容をどう表現していいのかよくわかっていません。 社内のサーバAとBがあり、外部のwebサーバCがあるとします。teratermを用いてCのDBへファイルをアップロードしたり、BのCVSからファイルの更新を行いたいと思っています。しかし、それをAへログインして行うような感じなのです。どのようにしてAからCへアクセスして、またCVSがBにあることをCに教えて、ファイルの更新をしたらよいのでしょうか。 コマンドを覚えればいいのか、なんらかの環境変数の設定など、他にもやることがあるのか、さっぱりわかりません。 ローカルのPCはwindows2000でサーバはlinuxです。Aへのログインはできていて、Cのアカウントも作ってもらっているはずですが、どうやってアクセスしていいかわからないので確認できていません。 だれか助けてください。よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
#1のスクリプトは参考用なので、この用途にはほぼそのまま使えません。 また、実際に、質問にあるものをどういうコマンドで記述するかもわからないので、何ともいえない部分があります。 とりあえず、動かせるイメージとしてかいてみます。 余計な変数等はここでは使っていません 画面イメージ Linux A Login: xxxx Password: xxxx@~ $ telnet B Linux B Login: zzzzz Password: zzzzz@~ $ cp /mnt/B /mnt/C zzzzz@~ $ exit Connection closed by foreign host. xxxx@~ $ exit TTLにすると(あってるかな。汗) connect 'A' wait 'Login:' sendln 'xxxx' wait 'Password:' sendln 'ぱすわーど' wait '$' sendln 'telnet B' wait 'Login:' sendln 'zzzzz' wait 'Password:' sendln 'ぱすわーど' wait '$' sendln 'cp /mnt/B /mnt/C' wait '$' sendln 'exit' wait '$' sendln 'exit' #1の、「以下、NTのドメイン名」・・というのは、こんなこともできますよというあくまでもサンプルです。
その他の回答 (2)
- honeorizon
- ベストアンサー率70% (197/279)
それは、teratermがする仕事ではありません。teratermは サーバAのLinuxにアクセスするためのターミナルソフトで しかなく、実際の作業はLinux上のコマンドで操作する必要 があります。いくらteratermのマクロコマンドを勉強して も、一番大事な"CのDBへファイルをアップロード"するコマ ンドやCVSのコマンドが分からなければ何にもなりません。 そうしたCVS等の機能はteratermには無いからです。マクロ による自動化は出来ます。#1,2の人はそれを言っているの ですが、元々のコマンドが分からなければ何にもなりませ ん。 "DBへのアップロード"はだけでは何もアドバイスできま せん。それこそアップロードのやり方は色々あるからで す。また、CVSコマンドの使い方は検索すればいっぱい出 てきますし、CVSサーバのホスト名やCVSツリーの構成が 分からなければ何の助けにもなりません。 とにかく、teratermでなくLinux上で操作するコマンドを 勉強されることをお勧めします。そして、それを的確に 教えてもらえるのは、そうしたサーバを設定した人です。 その人に聞くのが一番早いでしょう。
補足
ご回答ありがとうございます。自分に課せられた作業に必要なcvsのコマンドはぐぐってわかっていたので、あまり詳しくかかなかったのですが、かえって質問範囲を不明確にしてしまいました。すみません。わたし自身もlinuxを知らない人間にいきなりこの作業をさせるのはどうかと思ってはいるのですが。自分がつまずいている場所が、linuxの知識がないことなのか、サーバないしネットワークをわかっていないことなのか、すらわからないため、調べるにも右往左往してしまっていました。#2のお礼にまとめましたので、結果の御報告はそちらでさせて頂きます。
- 春原 なの(@ymda)
- ベストアンサー率37% (668/1777)
ttlマクロをかくしかないですね。 基本的に、sendln, wait だけで、ある程度のことはできます。 ・sendln - 1行出力、行末にCRも出力 ・wait - 指定した文字列が表示されるまで待機 参考用・・うちで使っているものです。 connect 'ほすとめい' UsernamePrompt = 'login:' Username = 'ゆーざーめい' PasswordPrompt = 'Password:' Password = 'ゆーざーぱすわーど' SuPasswordPrompt = 'Password:' SuPassword = 'rootのぱすわーど' wait UsernamePrompt sendln Username wait PasswordPrompt sendln Password sendln 'su' wait PasswordPrompt sendln SuPassword wait '#' 以下、NTのドメイン名(=ホスト名なんですが)を環境変数から取得し、それをXサーバーとしてホストに定義させるもの getenv 'LOGONSERVER' mydomain send 'export DISPLAY="`echo ' send ''mydomain'' sendln '|sed -e s/\\\\\\\//g;`.local:0"'
お礼
早いご教授ありがとうございます。すぐには理解できませんが、元にして調べて行こうと思います。Passwordと表記されているところはそのままPasswordと入力し、ぱすわーどと表記されているところは、設定されたパスワードを入力するということでよろしいでしょうか。 ユーザパスワードとrootパスワードというのは両方必須でしょうか。ユーザパスしか与えられていないような気がするのですが。 また最後の四行は改変なく使うものでしょうか。それともドメインを調べてそこへしかるべき文字列をあてはめていくのでしょうか。 調べますといいつつ質問が多いですが、できればよろしくお願いいたします。ありがとうございました。
お礼
御親切にありがとうございます。頂いた情報をキーワードにして調べなおすなどして、なんとか一番最初のハードルは突破しました。素人がどこでつまづくかの事例として報告させていただきます。 まず二つ目のホストへのログインですが、teratermのSSH転送のリモートホストの設定をしていなかった(そんな設定があることさえ知りませんでした)のと、あとなぜかわかりませんが、 login や rlogin では入れなかったのが、 ssh -l ゆーざ名 ほすと名 で入ることができました。(しかもほすと名に、サーバの名前だけ入れていて失敗を繰り返していたのですが、なんたらかんたら.jpまで入れたら入ることができました。 ついで、サーバCのcvsに関しては、 pserver:ゆーざ@ほすと を指定しようとしたのですが、 そのたびに unknown ほすと が返ってきたので、teraterm側で先の設定をして、コマンドでは指定しないようにしました。 そうするとcvsのパスワードを聞いてくるので、 ここでまた、わたしは、そのcvsに対しては、ローカルからのユーザアカウントをもっていたので、自分のパスワードを入力して弾かれていたのですが、ここは他の方にきいて、別のパスワードを入力することでcvsコマンドを実行することができるようになりました。 (まだ実際にはいろいろやれるはずのことができないなどが発生してますが、この質問での問題は一応解決です) 素人のあいまいな質問にお答えいただきありがとうございました。