- ベストアンサー
システムバックアップで止めるサービスの順序
お世話になります。 システムバックアップをする際に、サービスを止めてバックアップをとりたいと思っています。 一般的なサービスを止める順番を教えてください。 【環境】 windows2003svsp2 IIS 各種AP すごく情報が少ないと思いますが 何卒、良き回答をお願いします。 ※また、バッチファイル等でサービスを停止している例がございましたらお教えください。 net stop サービス名だと思うのですが・・・
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
2003Serverは触ったことありませんが、2000ServerマシンをARCserveでシステムフルバックアップをとる時に停められるサービスをバッチファイルを作成して全て停めています。 サービスを停止させる方法は、最後に書かれているとおり NET STOP "サービス名" です。 " でくくっているのは、サービス名に空白が含まれているとうまく停められない時があるからです。 サービス保停止する際、別のサービスに依存するサービスがありますが、その親サービスを停める時に「これらのサービスも一緒に停止します」見たいなメッセージが出て、適切な順番で停止するので、停止順番は深く考えなくても構いません。 サービスを停止するバッチの作成方法ですが、まず、コマンドプロンプトから以下のコマンドを実行します。 NET START > C:\Service.txt notepad C:\Service.txt メモ帳が開くと現在開始されているサービスの一覧ができるので次の形式に修正します。 NET STOP "ServiceName" /Y 数が多いと大変ですが、頑張って修正してください。(最後の/Yは問合せがきたら強制的にYesを選択するオプションです) 私はPerlスクリプトを作成して一括で書き換えました(笑) 修正が終わったら、ServiceStop.Batと名前を変えて任意の場所に保存すればOKです。 停止させたサービスを開始させたい場合は、先ほどのServiceStop.Batの STOP を START に置き換えて ServiceStart.BAT と名前を付けて保存し任意の場所に保存します。 この時の注意点としては、バックアップのサービスがあった場合は、そのサービスは停止させないように書き換えてください。 また、本当に停止できないサービスはNET STOPしても停止できませんので、あまり深く考えないで下さい(笑)
その他の回答 (2)
- PrintScree
- ベストアンサー率25% (538/2091)
一つ注意事項があります。 NET STARTで得られたサービスの一覧ですが、サービス名の前にスペースがつくと思います。 このスペースが原因でサービスが止まらない可能性がありますので、その時は For ではなく、一つ一つNET STOPするか、NET STARTでサービス一覧ファイルを作成後にプログラムを作成して前のスペースをカットする処理を加える必要があるかもしれません。(私はこれをPerlスクリプトでやりました)
- PrintScree
- ベストアンサー率25% (538/2091)
ARCserveの3つのサービスは自動起動ですか? サービスの一覧作成からForで繰り返させるとARCserveのサービスも止まりますよね?その辺は基本的に問題ないでしょう。 それと、ARCserveのバックアップオプションの中にバックアップジョブの開始前、終了後に任意のプログラムを指定出来ますが、ここにServiceStopとServiceStartを指定する場合はARCserveのサービスは停めないようにする工夫が必要です。 提示していただいたバッチで問題はないと思います。 後は運用次第ですので頑張ってください。 一応、テストはしてみてくださいね!
お礼
丁寧にお教えいただきありがとうございました。 最初の案を採用し、BATファイル作成完了しました。 家のサーバで試して、うまく成功すれば採用します。 ちなみに私が作成したBATファイルは、 やはり、同じの筐体にARCserveも入っているのでのサービスを止まらないようにする工夫を考えなければなりません。私のレベルでは少し時間がかかりそうです・・・ 本当にありがとうございました。
補足
バッチファイルはこのように作成しました。 ちなみにこちらもARCserveです。 ************************************************* rem あがっているサービスを取得 c: cd ./ > servicename.txt net start > C:\servicename.txt rem ここからループ for /f "tokens=2,3*" %i in (servicename.txt) DO net stop "%i" /Y ************************************************* これで大丈夫でしょうか? ご回答宜しくお願いします。