00371 02/06/25 11:01 RE:00370 wait文
投稿者 : akihihi   コメントを投稿する

試してみます

> うむ、もしダメだとしたら、念のため
>
>    timeout 100
>    message "今からwaitします。"
>    wait  "DAISUB" 
>    message "waitしました。"
>
> のような形で本当にwait文が一瞬で終わってるかどうかテストして欲しいなぁと思
>ったりします。


00372 02/06/25 11:44 RE:00370 wait文
投稿者 : akihihi   コメントを投稿する

まず、示されメッセージ文を入れずに実行するとwait文が
有効になりません。直近の「timuoute 0」としてます

よくみてみると、おもうに、ログライトのタイミングがおか
しくないでしょうか?waitは内部的にはうまく動作してそう
な気がします。
 これのほかに、ハングアップ直前にwritelog文でログにメッセージを
記録するのですが、それも、変な位置(最後でない、サーバから
のメッセージといりくんで)に記録されます







### オリジナルスクリプトの場合 ###


DAISUB2M [33]: cat da2snm.log
cat da2po.log            −−−◆waitするも以下3行がsendされる?
cat da2lk2.log
cat da2eco1.log
    root  1809     1  0  8月  6  ?        300:48 /opt/OKIsnmpa/bin/snmpd
    root  1821     1  0  8月  6  ?        471:59 /opt/OKIsnmpa/bin/machined
    root  1815     1  0  8月  6  ?         0:00 /opt/OKIsnmpa/bin/mib2d
    root  1845  1844  0  8月  6  ?        627:43 /opt/OKIsnmpa/bin/snmpd-ora
    root  1844     1  0  8月  6  ?        139:46 /opt/OKIsnmpa/bin/snmpd-ora
    root  1837     1  0  8月  6  ?        55515:51 /opt/OKIsnmpa/bin/snmpd-tux
    root  1794     1  0  8月  6  ?        35:38 /usr/lbin/cmsnmpd
 
========= DAISUB2M SNMP    7/7   OK =========
 
------------------------------
   2002年06月25日 11時09分42秒
------------------------------
DAISUB2M [34]: cat da2po.log



### 示されたメッセージを入れると ###


DAISUB2M [33]: cat da2snm.log
    root  1809     1  0  8月  6  ?        300:48 /opt/OKIsnmpa/bin/snmpd
    root  1821     1  0  8月  6  ?        472:00 /opt/OKIsnmpa/bin/machined
    root  1815     1  0  8月  6  ?         0:00 /opt/OKIsnmpa/bin/mib2d
    root  1845  1844  0  8月  6  ?        627:44 /opt/OKIsnmpa/bin/snmpd-ora
    root  1844     1  0  8月  6  ?        139:46 /opt/OKIsnmpa/bin/snmpd-ora
    root  1837     1  0  8月  6  ?        55516:25 /opt/OKIsnmpa/bin/snmpd-tux
    root  1794     1  0  8月  6  ?        35:38 /usr/lbin/cmsnmpd
 
========= DAISUB2M SNMP    7/7   OK =========
 
------------------------------
   2002年06月25日 11時19分00秒
------------------------------
DAISUB2M [34]: cat da2po.log
O






−◆以下示されたメッセージを入れたソースリスト−−−−−−−−

;**********************
;*****      ログ表示          *****
;**********************
timeout 0
wait    "DAISUB2M"
send "cat da2ora.log" + "^M"

wait    "DAISUB2M"
;sleep 1
send "cat da2tux.log" + "^M"

wait    "DAISUB2M"
;sleep 1
send "cat da2ns.log" + "^M"

wait    "DAISUB2M"
;sleep 1


timeout 100             −−−−これらをいれました
    message "今からwaitします。"
send "cat da2snm.log" + "^M"
    wait  "DAISUB" 
    message "waitしました。"


;wait    "DAISUB2M"
;sleep 1
send "cat da2po.log" + "^M"

wait    "DAISUB2M"
;sleep 1
send "cat da2lk2.log" + "^M"

wait    "DAISUB2M"
;sleep 1
send "cat da2eco1.log" + "^M"

wait    "DAISUB2M"
;sleep 1
send "cat da2erco.log" + "^M"

wait    "DAISUB2M"
;sleep 1
send "cat da2ervi.log" + "^M"

wait    "DAISUB2M"
;sleep 1
send "cat da2sysop.log" + "^M"

wait    "DAISUB2M"
;sleep 1
send "cat da2sysco.log" + "^M"

wait    "DAISUB2M"
;send "cat da2sysvi.log" + "^M"
wait    "DAISUB2M"
timeout 10
goto END                           ; ENDへジャンプ


00373 02/06/25 17:31 RE:00372 wait文
投稿者 : 秀まるお2   コメントを投稿する

 中身を理解するのが困難なので、解読は途中で挫折させていただきます。

 それよりも、1つ間違いの元のような物を見つけました。

 秀Termのsend文は、実際に文字列を送信する前に終了します。例えば

    send "cat da2ora.log" + "^M"
    writebuffer "AAAA"

 とすると、catコマンドの前にAAAAが出てくるはずです。

 その辺で誤解があるんじゃないかという気がします。

 例えば上記の例で言うなら、catコマンドの送信(およびそのエコーバック)を待
ってから次の処理をさせたいなら、

    send "cat da2ora.log" + "^M"
    wait "^M^J"
    writebuffer "AAAA"

 のように記述しないとダメです。

 あとあと、全体的に、ホストからのプロンプトを完全に待つことなくsend文を使っ
てますが、これもあまりよくないです。

 例えば

    wait "DAISUB2M"
    send "cat da2ora.log" + "^M"

 の部分がありますが、ここは出来れば

    wait "DAISUB2M"
    wait  postidle(1)  ": "
    send "cat da2ora.log" + "^M"

 のように正確にプロンプトを待ってから送信するようにした方がいいと思います。

 全体的に、

 − 何か文字列を送ったら、そのエコーバックを待ってから次の処理をする。
 − 何か送信する場合は、プロンプトを完全に待ってから送信する。

 ってことで直してみてはどうでしょ?


新規に投稿する