본문 바로가기
투윤아빠의 올IT

배치파일(bat)을 이용한 윈도우 서비스, Task 점검 스크립트 / 자동화 / 점검 스크립트 만들기.

by 별다방김샘 2023. 11. 27.
반응형

이번 글에서는 윈도우 환경에서 사용할 수 있는 스크립트를 만들어 보겠습니다. 배치 파일로 작성하여 윈도우 서비스 및 Task 점검을 보다 쉽고 빠르게 확인할 수 있는 스크립트입니다.

 

코딩

 

목차

     

    배치 파일(bat)을 이용한 service 체크 및 Task 체크 스크립트

     

     

    1. 스크립트 시작 설정

    @echo off

    스크립트가 실행될 때 커맨드 프롬프트에 명령어를 표시하지 않도록 설정합니다.

     

     

     

     

     

    2. 문자 인코딩 설정

    chcp 437 > NUL

    스크립트에서 사용하는 인코딩을 437 코드 페이지로 설정합니다.

     

     

     

     

    3. 스크립트 시작 메시지 출력

    echo		======================
    echo		== StartUP Check List ==
    echo		======================

    스크립트 실행 시 화면에 표시되는 문구입니다. 원하는 메시지로 변경하면 좋을 듯합니다.

     

     

     

     

    4. 서비스 체크

    echo.
    echo =============
    echo Service Check
    echo =============
    for /f "delims=" %%i in ('type service.list ^| findstr /v #') do (
        echo|set /p=- %%i :
        sc query "%%i" | findstr "STATE" | findstr "RUNNING" > NUL
        IF ERRORLEVEL 1 (echo STOPPED) ELSE (echo RUNNING)
    )
    echo ======================================

    service.list 파일의 각 서비스에 대해 상태를 확인하고 결과를  출력합니다. 사전에 체크할 서비스 항목을 만들어 주어야 합는데요 스크립트 보시면 service.list 라는 파일에 체크할 서비스 항목들을 넣어 두었습니다.

     

     

     

     

    5. Task 체크

    echo.
    echo ============
    echo Task Check
    echo ============
    for /f "delims=" %%i in ('type task.list ^| findstr /v #') do (
        echo|set /p=- %%i :
        tasklist | findstr /c:"%%i" > NUL
        IF ERRORLEVEL 1 (echo STOPPED) ELSE (echo RUNNING)
    )
    echo ================================================

    서비스 체크와 같은 방식으로 taks.list 파일의 각 task에 대한 상태를 체크하고 결과를 출력 합니다. Task 항목도 서비스체크와 마찬가지로 task.list 파일에 넣어 두었습니다.

     

     

     

     

    6. NAS 연결 확인

    echo.
    echo ==============
    echo NAS Connection
    echo ==============
    net use
    echo ================================================

    현재 시스템의 연결된 모든 네트워크 드라이브를 표시합니다.

     

     

     

     

    7. 스크립트 종료 설정

    pause
    exit

    스크립트 실행 결과를 확인할 수 있도록 화면에 일시 중지하고 스크립트를 종료합니다.

     

     

     

     

    8. 실행 결과

    스크립트를 실행하면 아래 그림과 같이 확인이 됩니다. 

    코딩 결과

     

     

     

    코딩

     

    9. 전체 소스

     

    @echo off
    chcp 437 > NUL
    echo		======================
    echo		== StartUP Check List ==
    echo		======================
    echo.
    echo.
    echo =============
    echo Service Check
    echo =============
    for /f "delims=" %%i in ('type service.list ^| findstr /v #') do (
        echo|set /p=- %%i :
        sc query "%%i" | findstr "STATE" | findstr "RUNNING" > NUL
        IF ERRORLEVEL 1 (echo STOPPED) ELSE (echo RUNNING)
    )
    echo ======================================
    
    echo.
    echo.
    echo ============
    echo Task Check
    echo ============
    for /f "delims=" %%i in ('type task.list ^| findstr /v #') do (
        echo|set /p=- %%i :
        tasklist | findstr /c:"%%i" > NUL
        IF ERRORLEVEL 1 (echo STOPPED) ELSE (echo RUNNING)
    )
    echo ================================================
    
    echo.
    echo.
    echo ==============
    echo NAS Connection
    echo ==============
    net use
    echo ================================================
    
    pause
    exit

    전체 코드입니다. 본인의 시스템에 맞게 수정하여 사용하시면 보다 편리하게 점검을 진행할 수 있을 것 같습니다. 추가로 로그 파일을 떨궈주는 코드를 추가 작성하여 작업 스케쥴러에 등록 후 로그 파일로 확인할 수 있을 것입니다.

     

     

     

    ★ 같이 보면 좋은 글

    리눅스 web/was 체크 스크립트(apache, tomcat)

     

    리눅스 web/was 체크 스크립트(apache, tomcat)

    리눅스 시스템에서 web/was 인스턴스 체크를 하기 위한 쉘 스크립트 입니다. 사용하는 시스템에 맞게 수정해서 사용하면 도움이 될것 같습니다. 본 스크립트는 하나의 리눅스 시스템에 apache와 tomc

    zzose-no1.tistory.com

     

    코딩코딩

    반응형