[前の記事]« ctrl-Cが押されるまで同じコマンドを繰り返し実行する方法は?
[次の記事][NT系]KR.EXEを起動すると画面がクリアされてしまう »

関連オンラインソフト配布サイト:
Vector>ダウンロード(top) |>MS-DOSまたは汎用 | >WindowsVista/XP/2000/NT

▲カテゴリー「UNIXコマンドとDOS/Windows」索引へ

[win2000 with AIX]バッチ処理が途中で止まることがある

111.
この謎を教えて下さい。
2004年12月03日(金) 09時37分
Masa
OS:Windows2000server

AIXからこのマシン上のコマンドスクリプトをキックしています。
内容は以下のようなものです。
----------------------------------------------------------
ECHO OPEN %FTP_SERVER% >ftpput.ini
ECHO %FTP_USER%>>ftpput.ini
ECHO %FTP_PASSWORD%>>ftpput.ini
ECHO ascii>>ftpput.ini
ECHO cd %FTP_DIR%>>ftpput.ini
ECHO MPUT C:\DIR\*.txt>>ftpput.ini
ECHO BYE>>ftpput.ini

exeファイルを実行し、C:\DIRにテキストファイルをセット

ftp -i -s:ftpput.ini
del ftpput.ini
copy C:\DIR\*.txt C:\BK
del C:\DIR\*.txt
----------------------------------------------------------

通常、この一連の処理は問題なく完了するのですが、たまにcopy
以下の処理が実行されなかったり、copyまでは実行されるがdelが
実行されなかったりすることがあります。

ちなみに、この処理は30分おきに自動稼動していて転送する
テキストファイルは通常きちんと削除されていれば0~3ファイル
です。

このような現象が発生してしまうのはなぜでしょうか?
お分かりになる方がいましたら、教えて下さい。
よろしくお願いします。
113.
バッチが途中で実行されていない
2004年12月03日(金) 16時00分
じゃく
こんにちは。
>copy C:\DIR\*.txt C:\BK

この行で「c:\DIR\hoge.txt を上書きしますか? (Yes/No/All):」などと上書き確認待ちになっているのではないでしょうか。

copy C:\DIR\*.txt C:\BK >C:\DIR\copy.log 
などと記述してメッセージが出ていないか確認されては?
114.
Re2:バッチが途中で実行されていない
2004年12月03日(金) 16時28分
otn
>こんにちは。
>>copy C:\DIR\*.txt C:\BK

>この行で「c:\DIR\hoge.txt を上書きしますか? (Yes/No/All):」などと上書き確認待ちになっているのではないでしょうか。

>copy C:\DIR\*.txt C:\BK >C:\DIR\copy.log 
>などと記述してメッセージが出ていないか確認されては?

バッチスクリプト内でのCOPYは確認を求めないのがデフォルトなので、環境変数COPYCMDに /-Y をセットでもしていない限りは確認待ちにはならないはずです。

AIX機からバッチスクリプトを起動しているとの事ですが、どのような手段でしているのでしょうか?
115.
Re3:バッチが途中で実行されていない
2004年12月03日(金) 16時51分
じゃく
>>こんにちは。
>>>copy C:\DIR\*.txt C:\BK
>>
>>この行で「c:\DIR\hoge.txt を上書きしますか? (Yes/No/All):」などと上書き確認待ちになっているのではないでしょうか。
>>
>>copy C:\DIR\*.txt C:\BK >C:\DIR\copy.log 
>>などと記述してメッセージが出ていないか確認されては?

>バッチスクリプト内でのCOPYは確認を求めないのがデフォルトなので、環境変数COPYCMDに /-Y をセットでもしていない限りは確認待ちにはならないはずです。

検証せずに回答してしまいました。otnさんの回答のとおりでした。
Masaさん、私の回答の「上書き云々」は無視してください。
121.
Re3:バッチが途中で実行されていない
2004年12月06日(月) 16時10分
Masa
copyのところでログを取ってみたところ、通常は下記のように出力
されます。
--------------------------------------------------------
C:\DIR\001.TXT
        1 個のファイルをコピーしました。
--------------------------------------------------------
しかし、コピーやその後の削除が実行されない場合は1行目のみの
出力で終わっています。
なぜでしょうか。

ほとんどの場合は正常稼動するので確認待ち(上書き含む)では
ないと思います。

>AIX機からバッチスクリプトを起動しているとの事ですが、どのような手段でしているのでしょうか?

CRONでKshファイルを起動し、その中でtelnetにてWin2000サーバー
のコマンドスクリプトを起動しています。
Kshファイルで以下のような終了判定をしています。
-------------------------------------------------------
expect "*>"
send "exit\r"
-------------------------------------------------------
ここが問題かと思い、"*>"を別なものに変えました。
コマンドスクリプト側も最後に変更した文字を出力するように変更

現在、様子を見ている状況です。

如何なものでしょうか。
123.
Re4:バッチが途中で実行されていない
2004年12月06日(月) 18時05分
otn
>>AIX機からバッチスクリプトを起動しているとの事ですが、どのような手段でしているのでしょうか?

>CRONでKshファイルを起動し、その中でtelnetにてWin2000サーバー
>のコマンドスクリプトを起動しています。
>Kshファイルで以下のような終了判定をしています。
>-------------------------------------------------------
>expect "*>"
>send "exit\r"
>-------------------------------------------------------
>ここが問題かと思い、"*>"を別なものに変えました。
>コマンドスクリプト側も最後に変更した文字を出力するように変更

そうですね。スクリプトの最後で、echo NORMAL-END 等してそれを待つほうが良いでしょうね。

>現在、様子を見ている状況です。

>如何なものでしょうか。

念のためですが、スクリプトの先頭では@echo offしてますよね?
でも expect "*>" が予定外の物に反応しているとしても、"exit\r" が入力されるだけなので、実行中のバッチスクリプトが中断する理由にはなりませんね。exitが何かに食われて失われる事でtelnetログインからexit出来なくてプロセスが溜まっておかしくなっているのかなぁ?
137.
Re5:バッチが途中で実行されていない
2004年12月09日(木) 10時02分
Masa
回答、ありがとうございました。

>>>AIX機からバッチスクリプトを起動しているとの事ですが、どのような手段でしているのでしょうか?
>>
>>CRONでKshファイルを起動し、その中でtelnetにてWin2000サーバー
>>のコマンドスクリプトを起動しています。
>>Kshファイルで以下のような終了判定をしています。
>>-------------------------------------------------------
>>expect "*>"
>>send "exit\r"
>>-------------------------------------------------------
>>ここが問題かと思い、"*>"を別なものに変えました。
>>コマンドスクリプト側も最後に変更した文字を出力するように変更

変更後、現在のところ問題なく稼動している状況です。

>念のためですが、スクリプトの先頭では@echo offしてますよね?
>でも expect "*>" が予定外の物に反応しているとしても、"exit\r" が入力されるだけなので、実行中のバッチスクリプトが中断する理由にはなりませんね。exitが何かに食われて失われる事でtelnetログインからexit出来なくてプロセスが溜まっておかしくなっているのかなぁ?


@echo offはしていませんが、問題ありますか。
スクリプト上でiniファイルにechoを使用してFTPコマンドを出力し
そのiniファイルを使用してファイル転送をしています。
139.
Re6:バッチが途中で実行されていない
2004年12月09日(木) 16時37分
otn
>@echo offはしていませんが、問題ありますか。
>スクリプト上でiniファイルにechoを使用してFTPコマンドを出力し
>そのiniファイルを使用してファイル転送をしています。

@echo offしてないと、iniファイルを作るecho文自体が画面にエコーバックされて、そこに含まれる > に、expect "*>" が反応するのではないでしょうか?
expect 文字を別のものに変えておさまったのなら、そのあたりが原因のような気がします。
157.
Re7:バッチが途中で実行されていない
2004年12月14日(火) 17時06分
Masa
ありがとうございました。
 
 


カテゴリー「UNIXコマンドとDOS/Windows」索引へ

 

カテゴリー一覧

FPCU/FPCDIY QUICK LINK online
この上の各ジャンル名をクリックすると、下のウィンドウが切り替わります▼


=リンク集のインデックスはこちら=

資料書籍

About

2004年12月03日 05:42に投稿されたエントリーのページです。

ひとつ前の投稿は「ctrl-Cが押されるまで同じコマンドを繰り返し実行する方法は?」です。

次の投稿は「[NT系]KR.EXEを起動すると画面がクリアされてしまう」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

This site is powered by Six Apart
Movable Type 3.33-ja
このブログについて | 運営:有限会社メディアポート