【先着1,000名様!】1,000円分をプレゼント!

IISの停止を監視する

IISを使って社内用Webサーバーを使用しております。
Windows Server 2003 Standard SP2
IIS 6.0

深夜にIISを停止させ、NTBackupでバックアップを実行、再起動させるというバッチファイルを組んで
タスクで毎日実行させているのですが、IISが止まったままになってしまうことが多々あります。

原因を調べようとイベントビューアでログを確認しているのですが
IISに関連するログは残っていません。

そこでIISのプロセスを監視して、いつとまっているのかログを残したいのですが
良い方法がありましたら、教えてください。

当方サーバー管理は初心者です。

A 回答 (3件)

バッチの内容としては、???ですけれど


(起動失敗時の処理や待ち等々考慮されてない)

MSが一応適切な?再起動バッチを作ってくれています。
これをちょいちょい、と書き換えれば質問者様ののぞむ運用が可能かと。

参考URL:http://support.microsoft.com/kb/194916/ja
    • good
    • 0

IIS 停止時のバッチは


net stop iisadmin /y
でしょうか。 もしかして、/y抜きでやってるとか・・・。
これ、実行すると、
  FTP Publishing Service
Microsoft NNTP Service
Microsoft SMTP Service
World Wide Web Publishing Service
依存しているこの4つのサービスも止まります。
もちろん、起動時には4つのサービスとiisadminを上げる必要があります。
再起動ということは、サービスの再起動ということでしょうか。

イベントビューアに何も残っていない、というのは、停止されたログもないということかな?
それとも開始されたとかいうログがないということかな?

停止・開始両方のログがない場合は、停止自体に失敗している可能性があります。
(前述の/y抜きでnet stopをした場合、そうなる可能性が高いです)
→止まったままになっていないというのは停止していない状態でbackupとって・・・だと。

開始ログがない場合は、開始に失敗しているだけのよう。
起動順番を間違っているか、単にiisadminを起動しようとしているだけなのか。

イベントビューアに頼らず、バッチファイル内でログを吐くように設定してみては?

(たとえば)
net stop iisadmin /y >> iisadminstop.log

とかね。バッチファイルの結果をログに残すのは基本なので、
(そんなログの仕組みを作りたくない人は、別途バックアップソフトを使うのですよ(笑))
いろいろやってみたらいかがでしょうか。
    • good
    • 0
この回答へのお礼

バッチファイルは以下のように設定しております。

NET STOP W3svc /y
C:\WINDOWS\system32\ntbackup.exe backup ~~~
NET START W3svc /y

一応Webサービスのみとめて、クライアントからアクセスできないように設定して
バックアップをとるようにしております。


バッチファイルの結果を残す(ログ)というのが
基本ということすら知りませんでした。

別途バックアップソフトを買うなど、費用は極力抑えたいと思いますので
VPCなどで仮想環境を作り、いろいろ試してみます。

ありがとうございました。

お礼日時:2010/06/24 13:47

サービスのプロパティに、エラーで停止した場合の処理を指定できる部分があります。


あとは、ちゃんと再起動できているのか確認できるように、バッチファイル実行時の出力をリダイレクトなどで残しておいたほうがいいと思います。
    • good
    • 0
この回答へのお礼

なるほど、ログをのこすという基本がわかっておりませんでした。

リダイレクトに関して、バッチファイルに追加してログを残すように設定したいと考えております。

お礼日時:2010/06/24 13:48

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QIIS(WEBサービスのみ)を停止させる方法を至急教えてください

『IISRESET /STOP 』のコマンドでIISを停止させることができることは分かっているのですが、これをしてしまうと同じサーバ上で動いているFTPサービスまで停止してしまいます。

WEBサービスだけを停止(W3SVC)のみを停止させ
FTP(MSFTPSVC)のみを生かす方法なないでしょうか。

とても困っています。どなたか教えて下さい。
全て停止させたあと、FTPサービスだけ再開させるとか
方法は何でもよいです。

WindowsServer2003 SP1 IIS6.0です。

Aベストアンサー

サービスの開始/停止ができるだけでいいなら、
"net start"/"net stop"で可能です。

 net stop W3SVC

でいけるはずです。サービス名は自身ないですが・・・

QIISのサービス停止とWebサーバとしてのサービス停止は一致していますか?

net stop "World Wide Web Publishing Service"
のERRORLEVELが0に返ってきたことによって
IISの停止は正常に完了したと判断して良いでしょうか?

Aベストアンサー

World Wide Web Publishing ServiceはIISの機能の一つで、これだけでIISを停止したとはいえません。
IIS Admin Serviceを停止すれば、IISが管理しているサービスが依存するサービスとして同時に停止されます。停止されるサービスは、インストールされた機能によって異なります。

QIISワーカープロセスが原因でCPUが100%に

ASP.NETを用いたWebサイトをIIS上で運用した際、開発したアプリケーションが少しでも動いた後にアプリケーションを停止せずサイトを停止すると、ワーカープロセスが原因でCPUが100%となります。
CPUが100%の状態のまま放置してもCPUの負荷が無くなりません。(アプリケーションプールを停止させることによってCPUの負荷が無くなります。)

この事象に関してネットで原因を調査した結果、明確な解決方法が見当たらずこちらに質問させていただく次第でございます。IISの設定に関して詳しい方がおられましたら、この事象の原因と考えられる要素などをご教授下さい。

動作環境
Windows2008 R2
IIS7.5
.NET FrameWork4.5

開発環境
VisualStudio2012
ASP.NET(.NET FrameWork4.0) FORMSで開発
Oracle ODP

Aベストアンサー

「アプリケーションを停止せずサイトを停止」というのが具体的にどのような手順なのかわからないのですが、手元のシステム(IIS7.5/Win2008R2server)で、World Wide Web Serviceを強制停止してみても、メモリプールやCPU占有は発生しません。

世の中に、IIS7.5+ASP.NET4 Web Formms+ODP.NETで構築されたシステムは大量に存在し、しかも業務用途でクリティカルな要件で動作しているものも数多いはずなので、根本的なバグである事は考えられません。事象の切り分けが必要かと思います。

・ODP.NETなしのアプリケーションでも同じ事象が発生するか?
・DAOによる変化はあるか?(DataReader、TableAdapter、EntityFrameworkなど)
・「アプリケーションが少しでも動いた後’というのはODP.NETと無関係か?
・(プログラム中)usingによるリソースやトランザクションの開放は確実に行っているか?

など、突っ込みどころは多いです。

Qpingでポートの指定

pingでIPアドレスを指定して、通信できるかどうかというのは
よく使いますが、pingでポートを指定して応答するかどうかは調べられるのでしょうか?

よろしくお願いします

Aベストアンサー

pingを含むICMPというプロトコルは、OSIの7レイヤで言うところのL2(同一セグメント内通信)とL3(IPルーティングされた通信)の両方にまたがる、ちょっと珍しいプロトコルです。

IPアドレスは指定できますが、別サブネットに属するIPアドレスに到達できればL3通信、できなければゲートウェイと呼ばれる同一サブネットに属する中継装置からの回答を得るという点でL2(MAC通信ではなく、同一セグメント内通信という意味)通信です。

ポート番号はL4で使用されるアドレスですから、L4機能の疎通確認はping(を含むICMP)ではできません。

FTPの疎通確認であれば、クライアントからサーバに対するTCP/21通信(FTP-CMD)が可能であること(サーバからクライアントへのTCP/21からの応答を含む)+サーバからクライアントに対するTCP/20通信(FTP-DATA)が可能であること(クライアントからサーバへのTCP/21からの応答を含む)が必要でしょう。

監視ソフトによるものであれば、
・クライアントからサーバへのログイン(TCP/21)
・クライアントからサーバへのlsの結果(TCP/20)
で確認すればよいでしょう。

pingを含むICMPというプロトコルは、OSIの7レイヤで言うところのL2(同一セグメント内通信)とL3(IPルーティングされた通信)の両方にまたがる、ちょっと珍しいプロトコルです。

IPアドレスは指定できますが、別サブネットに属するIPアドレスに到達できればL3通信、できなければゲートウェイと呼ばれる同一サブネットに属する中継装置からの回答を得るという点でL2(MAC通信ではなく、同一セグメント内通信という意味)通信です。

ポート番号はL4で使用されるアドレスですから、L4機能の疎通確認はping(を含む...続きを読む

QIISがフリーズ

漠然としていて申し訳ありませんが、
Windows Server 2000 + IIS5.0 + ASPで
イントラネット用のサイトを構築していますが、

一日に一度くらいの割合で、サイトが反応しなくなり、
IISを再起動が必要になってしまいます。
システムのイベント
IISのログ
等に不正だった痕跡は残っていません。

現在、分離プロセスで動かしています。
また、たまに DLLHISTがCPU100%の状態が続くことがあり、
ワームの感染について調べましたが、
その可能性はないようです。

どなたか、このような状況についてご存知の方がいらっしゃったら、アドバイスをお願いいたします。

Aベストアンサー

#3、#5、#6です。


> その様な場合、タスクマネージャの"DLLHOST"のメモリ使用量は、600人の時は人数に応じて増加し、
> 終了後は、完全に元に戻るのでしょうか?

完全な統計をとったわけではないのですが、600→100人にアクセス数が落ちるとメモリ使用量は減少していました。


Cで作成したDLLの不具合の件です。
どこにメモリリークするか、と聞かれての推測ですが
おそらくDLLHOSTかと。

DLLの開発はしたことがないので以下、推測になります。
断言はできないですが、メモリリークというかIISがフリーズした原因はおそらくコレでしょう。
DLLでのミスはOSに致命的なダメージを与えます。
ご存知かと思いますが、C言語は非常に融通の効く言語です。
ASPと違って幅広く開発できる一面、バグがあるとシステムを不安定にさせる要因にもなります。

WinSockはおそらくAPIを使っていますよね?
APIはシステムに密接に関連するところですし、メモリまわりで不具合が出て、
OSやIISの動作にも影響が出たと推測するのが妥当、かと。

#3、#5、#6です。


> その様な場合、タスクマネージャの"DLLHOST"のメモリ使用量は、600人の時は人数に応じて増加し、
> 終了後は、完全に元に戻るのでしょうか?

完全な統計をとったわけではないのですが、600→100人にアクセス数が落ちるとメモリ使用量は減少していました。


Cで作成したDLLの不具合の件です。
どこにメモリリークするか、と聞かれての推測ですが
おそらくDLLHOSTかと。

DLLの開発はしたことがないので以下、推測になります。
断言はできないですが、メモリリークというかIIS...続きを読む

QXCOPYで指定したフォルダとファイルをコピーしたい

C:\AAAフォルダとC:\AAA以下のファイルをコピーしたくて、
XCOPY C:\AAA D:\BBB /E
とすると、コピー先のD:\BBBにはAAAフォルダにあるファイルはコピーされるのですが、AAAフォルダそのものはコピーされません。
XCOPY C:\ D:\BBB /E
とすればコピーできるのですが、そうするとC:\のほかのフォルダもコピーされてしまいます。
EXCLUDEオプションを使うには指定するファイルが多いため、あまり使いたくありません。(コピーする前にMDでコピー先にAAAフォルダを作成するのもなるべく避けたい)
知っている方がいらしたら教えて下さい。

Aベストアンサー

xcopy /e C:\AAA D:\BBB\AAA
複数ファイルのコピーでコピー先が存在しないとき、ファイル名と見なすかディレクトリ名と見なすか聞いてきます。

応答を聞かれるのが嫌なら
echo d | xcopy /e C:\AAA D:\BBB\AAA
でいいはず。

Q「いずれか」と「いづれか」どっちが正しい!?

教えて下さいっ!
”どちらか”と言う意味の「いずれか」のかな表記として
「いずれか」と「いづれか」のどちらが正しいのでしょう???

私は「いずれか」だと思うんですが、辞書に「いずれか・いづ--。」と書いてあり、???になってしまいました。
どちらでもいいってことでしょうか?

Aベストアンサー

「いずれか」が正しいです.
「いづれ」は「いずれ」の歴史的かな遣いですので,昔は「いづれ」が使われていましたが,現代では「いずれ」で統一することになっていますので,「いずれ」が正しいです.

QDirコマンドでフォルダ内ファイルの合計サイズをだすには?(コマンドプロンプトにて)

いろいろ調べましたが不明な点があり、質問します。

WindowsのDOSプロンプトでdirコマンドを打つとフォルダ・ファイルの一覧が表示されますが、その中にファイルサイズが表示されています。
このサイズを合計できるコマンドはありませんか?
DIRコマンドのオプションを調べましたがそれらしいものが見当たりません。
具体的には
C:\xxx\配下に50個程度のファイルがあります。
その50個の合計サイズを知りたいです。
xxxフォルダの親フォルダにはアクセス不可です。

ずーっと悩んでいます。よろしくお願いします。

なお、OSはWindowsNTか2000で使用予定です。

Aベストアンサー

カレントドライブ、カレントフォルダを
C:\xxx\
にした状態で、

dir /s /a-d

/sパラメータででサブディレクトリすべてを検索
/a-dパラメータでディレクトリ以外のファイル(つまり属性に関係なくすべてのファイル

これを実行すると最後にファイルの個数とファイルサイズの合計を表示します。

もし、隠し属性のファイルは合計しないのであれば、

dir /s

だけで良いと思われます。

Qsqlplusで表示が変なので、出力を整形したい。

いつもお世話になっています。

サーバにアクセスしてsqlplusで、
データを調べたいのですが、
出力形式が見づらくて困っています。

よくわからいのですが、
---------------------------
カラム名1
---------------------------
カラム名2
---------------------------
カラム名3
---------------------------
1の値 2の値
3の値
---------------------------
カラム名1
---------------------------
カラム名2
---------------------------
カラム名3
---------------------------

上記のように意味不明な形式で出てきます。

例えばこんな風に

select カラム1,カラム2,カラム3 from hoge;

カラム1 1の値
---------------------------
カラム2 2の値
---------------------------
カラム3 3の値

等のように分かりやすく表示できないでしょうか?

ちなみにOracle9iR2を使用しています。
sqlに関するツールは使用できないルールでして、あくまでsqlplusのコマンド上でみやすくしなければなりません。

分かりづらくですいませんが、皆さま、ご教授お願いします。

いつもお世話になっています。

サーバにアクセスしてsqlplusで、
データを調べたいのですが、
出力形式が見づらくて困っています。

よくわからいのですが、
---------------------------
カラム名1
---------------------------
カラム名2
---------------------------
カラム名3
---------------------------
1の値 2の値
3の値
---------------------------
カラム名1
---------------------------
カラム名2
---------------------------
カラム名3
-----------------------...続きを読む

Aベストアンサー

SQLPLUSを起動して、

SQL>set linesize 列数

でどうだ。

SQL>show linesize

で確認ができる。

Qバッチファイルで昨日の日付を取得

すみません、どなたか教えて下さい。

バッチファイルの記述で、昨日の日付を取得する方法を教えて下さい。
今日の日付は下記のように取得しています。

rem 日時変数の取得
for /f "tokens=1-3 delims=/" %%a in ('echo %date:~-10%') do (set YYYYMMDD=%%a%%b%%c
)

Aベストアンサー

:: ----- prevdate.bat はじめ -----
@echo off
::今日の日付を取得
set yy=%date:~0,4%
set mm=%date:~5,2%
set dd=%date:~8,2%
echo 今日は、%yy%年%mm%月%dd%日です。

::1日前の日付を計算する
set /a dd=%dd%-1
set dd=00%dd%
set dd=%dd:~-2%
set /a ymod=%yy% %% 4
if %dd%==00 (
if %mm%==01 (set mm=12&& set dd=31&& set /a yy=%yy%-1)
if %mm%==02 (set mm=01&& set dd=31)
if %mm%==03 (set mm=02&& set dd=28&& if %ymod%==0 (set dd=29))
if %mm%==04 (set mm=03&& set dd=31)
if %mm%==05 (set mm=04&& set dd=30)
if %mm%==06 (set mm=05&& set dd=31)
if %mm%==07 (set mm=06&& set dd=30)
if %mm%==08 (set mm=07&& set dd=31)
if %mm%==09 (set mm=08&& set dd=31)
if %mm%==10 (set mm=09&& set dd=30)
if %mm%==11 (set mm=10&& set dd=31)
if %mm%==12 (set mm=11&& set dd=30)
)
echo 昨日は、%yy%年%mm%月%dd%日です。

echo.
pause
:: ----- prevdate.bat おわり -----

参考URL:http://www.atmarkit.co.jp/fwin2k/win2ktips/419batchdate/batchdate.html

:: ----- prevdate.bat はじめ -----
@echo off
::今日の日付を取得
set yy=%date:~0,4%
set mm=%date:~5,2%
set dd=%date:~8,2%
echo 今日は、%yy%年%mm%月%dd%日です。

::1日前の日付を計算する
set /a dd=%dd%-1
set dd=00%dd%
set dd=%dd:~-2%
set /a ymod=%yy% %% 4
if %dd%==00 (
if %mm%==01 (set mm=12&& set dd=31&& set /a yy=%yy%-1)
if %mm%==02 (set mm=01&& set dd=31)
if %mm%==03 (set mm=02&& set dd=28&& if %ymod%==0 (set dd=29))
if %mm%==04 (set mm=03&& set dd=31)
if...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング