プロが教えるわが家の防犯対策術!

質問者は質問内容をどう表現していいのかよくわかっていません。

社内のサーバAとBがあり、外部のwebサーバCがあるとします。teratermを用いてCのDBへファイルをアップロードしたり、BのCVSからファイルの更新を行いたいと思っています。しかし、それをAへログインして行うような感じなのです。どのようにしてAからCへアクセスして、またCVSがBにあることをCに教えて、ファイルの更新をしたらよいのでしょうか。

コマンドを覚えればいいのか、なんらかの環境変数の設定など、他にもやることがあるのか、さっぱりわかりません。

ローカルのPCはwindows2000でサーバはlinuxです。Aへのログインはできていて、Cのアカウントも作ってもらっているはずですが、どうやってアクセスしていいかわからないので確認できていません。

だれか助けてください。よろしくお願いします。

A 回答 (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のドメイン名」・・というのは、こんなこともできますよというあくまでもサンプルです。
    • good
    • 0
この回答へのお礼

御親切にありがとうございます。頂いた情報をキーワードにして調べなおすなどして、なんとか一番最初のハードルは突破しました。素人がどこでつまづくかの事例として報告させていただきます。

まず二つ目のホストへのログインですが、teratermのSSH転送のリモートホストの設定をしていなかった(そんな設定があることさえ知りませんでした)のと、あとなぜかわかりませんが、
login

rlogin
では入れなかったのが、
ssh -l ゆーざ名 ほすと名
で入ることができました。(しかもほすと名に、サーバの名前だけ入れていて失敗を繰り返していたのですが、なんたらかんたら.jpまで入れたら入ることができました。

ついで、サーバCのcvsに関しては、
pserver:ゆーざ@ほすと
を指定しようとしたのですが、
そのたびに
unknown ほすと
が返ってきたので、teraterm側で先の設定をして、コマンドでは指定しないようにしました。
そうするとcvsのパスワードを聞いてくるので、
ここでまた、わたしは、そのcvsに対しては、ローカルからのユーザアカウントをもっていたので、自分のパスワードを入力して弾かれていたのですが、ここは他の方にきいて、別のパスワードを入力することでcvsコマンドを実行することができるようになりました。

(まだ実際にはいろいろやれるはずのことができないなどが発生してますが、この質問での問題は一応解決です)

素人のあいまいな質問にお答えいただきありがとうございました。

お礼日時:2005/04/06 01:50

それは、teratermがする仕事ではありません。

teratermは
サーバAのLinuxにアクセスするためのターミナルソフトで
しかなく、実際の作業はLinux上のコマンドで操作する必要
があります。いくらteratermのマクロコマンドを勉強して
も、一番大事な"CのDBへファイルをアップロード"するコマ
ンドやCVSのコマンドが分からなければ何にもなりません。
そうしたCVS等の機能はteratermには無いからです。マクロ
による自動化は出来ます。#1,2の人はそれを言っているの
ですが、元々のコマンドが分からなければ何にもなりませ
ん。
"DBへのアップロード"はだけでは何もアドバイスできま
せん。それこそアップロードのやり方は色々あるからで
す。また、CVSコマンドの使い方は検索すればいっぱい出
てきますし、CVSサーバのホスト名やCVSツリーの構成が
分からなければ何の助けにもなりません。

とにかく、teratermでなくLinux上で操作するコマンドを
勉強されることをお勧めします。そして、それを的確に
教えてもらえるのは、そうしたサーバを設定した人です。
その人に聞くのが一番早いでしょう。

この回答への補足

ご回答ありがとうございます。自分に課せられた作業に必要なcvsのコマンドはぐぐってわかっていたので、あまり詳しくかかなかったのですが、かえって質問範囲を不明確にしてしまいました。すみません。わたし自身もlinuxを知らない人間にいきなりこの作業をさせるのはどうかと思ってはいるのですが。自分がつまずいている場所が、linuxの知識がないことなのか、サーバないしネットワークをわかっていないことなのか、すらわからないため、調べるにも右往左往してしまっていました。#2のお礼にまとめましたので、結果の御報告はそちらでさせて頂きます。

補足日時:2005/04/06 01:23
    • good
    • 0

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"'
    • good
    • 0
この回答へのお礼

早いご教授ありがとうございます。すぐには理解できませんが、元にして調べて行こうと思います。Passwordと表記されているところはそのままPasswordと入力し、ぱすわーどと表記されているところは、設定されたパスワードを入力するということでよろしいでしょうか。

ユーザパスワードとrootパスワードというのは両方必須でしょうか。ユーザパスしか与えられていないような気がするのですが。

また最後の四行は改変なく使うものでしょうか。それともドメインを調べてそこへしかるべき文字列をあてはめていくのでしょうか。

調べますといいつつ質問が多いですが、できればよろしくお願いいたします。ありがとうございました。

お礼日時:2005/04/05 02:48

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!