BAT 일괄 처리 서비스 작동 여부를 판단하는 방법(일괄 처리 명령 통합 적용)

5826 단어 bat일괄 처리
우선 모두에게 다음 처리의 기본 개념을 보급시키다
일괄 처리(Batch), 일괄 처리 스크립트라고도 합니다.말 그대로 일괄 처리는 특정한 대상을 대량으로 처리하는 것으로 일반적으로 간단한 스크립트 언어로 여겨지며 이것은 DOS와 Windows 시스템에 응용된다.일괄 처리 파일의 확장자는bat 또는 cmd입니다.현재 비교적 흔히 볼 수 있는 일괄 처리는 DOS 일괄 처리와 PS 일괄 처리 두 종류를 포함한다.PS 일괄 처리는 강력한 사진 편집 소프트웨어인 Photoshop을 바탕으로 그림을 대량으로 처리하는 스크립트입니다.DOS 일괄 처리는 DOS 명령을 기반으로 DOS 명령을 자동으로 대량으로 실행하여 특정 작업을 수행하는 스크립트입니다.더욱 복잡한 상황은 if, for, goto 등 명령 제어 프로그램의 운행 과정을 사용해야 한다. 예를 들어 C, Basic 등 고급 언어와 같다.만약 더욱 복잡한 응용을 실현해야 한다면 외부 프로그램을 이용하는 것이 필요하다. 이것은 시스템 자체가 제공하는 외부 명령과 제3자가 제공하는 도구나 소프트웨어를 포함한다.일괄 처리 프로그램은 명령행 환경에서 실행되지만 명령행 소프트웨어를 사용할 수 있을 뿐만 아니라 현재 시스템에서 실행할 수 있는 모든 프로그램은 일괄 처리 파일에 놓고 실행할 수 있다.
앞말
어떤 qliksense 서버는healthcheck(건강상태 모니터링) 프로그램이 필요해서 일괄 처리 스크립트가 생겼습니다.
대략적인 기능은 다음과 같습니다.
  • 일괄 처리로 현재 날짜 시간을 가져옵니다
  • 일괄 처리로 동적 파일 이름을 생성합니다
  • 로그 파일에 출력 echo를 일괄 처리합니다
  • 일괄 처리 반복 목록 목록
  • 일괄 처리 함수와call 함수
  • 서비스가 실행 중인지 판단합니다
  • 일괄 처리count 계수
  • 일괄 처리copy 복사 파일
  • 일괄 처리 판단은gtr보다 크다
  • 
    @echo off
    color 2E
    set YYYYmmdd=%date:~0,4%%date:~5,2%%date:~8,2%
    set hhmiss=%time:~0,2%%time:~3,2%%time:~6,2%
    set filename=healthcheck.log
    REM set "filename=healthcheck_%YYYYmmdd%_%hhmiss%.log"
    set "datetime=%YYYYmmdd%%hhmiss%"
    set allCount=0
    set errorCount=0
    set checkList="QlikSenseServiceDispatcher" "QlikSenseSchedulerService" "QlikSenseRepositoryService" "QlikSenseRepositoryDatabase" "QlikSenseProxyService" "QlikSensePrintingService" "QlikSenseEngineService" "QlikLoggingService"
    echo ============================================ >%filename%
    echo Health Checking by Qlik Team         >>%filename%
    echo zhengkai.blog.csdn.net
    echo (datetime: %datetime% )            >>%filename%
    echo ============================================ >>%filename%
    echo.                       >>%filename%
    echo.                       >>%filename%
    for %%L in (%checkList%) do call :health_check %%L 
    echo ============================================ >>%filename%
    echo Checking Finish.               >>%filename%
    echo.                       >>%filename%
    echo Error : %errorCount% of %allCount%      >>%filename%
    echo.                       >>%filename%
    echo ============================================ >>%filename%
    call :check_status                 
    echo ============================================ >>%filename%
    goto:end
    
    :health_check
    sc query |find /i %1 >nul 2>nul
    if not errorlevel 1 (
     echo SUCCESS...... %1             >>%filename%
    )else (
     echo FAILD...... %1 is error !         >>%filename%
     set /a errorCount+=1
    )
    set /a allCount+=1
    goto:eof
    
    :check_status
    if %errorCount% gtr 0 (
     echo ###### this server is Not Health     >>%filename%
    ) else (
     echo ###### this server is Health       >>%filename%
    )
    goto:eof
    
    :end
    copy %filename% \\xxxx\DataShare\CSDN\ZhengKai\
    배치 현재 날짜 시간 가져오기, 동적 파일 이름 생성
    
    set YYYYmmdd=%date:~0,4%%date:~5,2%%date:~8,2%
    set hhmiss=%time:~0,2%%time:~3,2%%time:~6,2%
    set "filename=healthcheck_%YYYYmmdd%_%hhmiss%.log"
    echo %filename%
    로그 파일에 일괄 출력 echo
  • > 출력 파일을 비우고 층을 다시 출력하는 것입니다
  • >>날짜와 서류에 추가됩니다
  • 
    echo ============================================ >%filename%
    echo Health Checking by Qlik Team         >>%filename%
    echo ============================================ >>%filename%
    일괄 처리 목록list
    List에 정의된 후 사용 가능
  • for%%L 어떤 변수로 훑어보나
  • in(%checkList%)은 어느 그룹을 두루 훑어봅니다
  • do echo%%L 반복적으로 무엇을 하는가
  • 
    set checkList="QlikSenseServiceDispatcher" "QlikSenseSchedulerService" "QlikSenseRepositoryService" "QlikSenseRepositoryDatabase" "QlikSenseProxyService" "QlikSensePrintingService" "QlikSenseEngineService" "QlikLoggingService"
    echo ============================================ >%filename%
    echo Health Checking List             >>%filename%
    for %%L in (%checkList%) do echo %%L 
    echo ============================================ >>%filename%
    일괄 처리 함수와call 함수
    하나 정의: function_name, 중간에 함수 내용, 뒤에 goto:eof로 마무리
    
    call :check_status
    
    :check_status
    if %errorCount% gtr 0 (
     echo ###### this server is Not Health     >>%filename%
    ) else (
     echo ###### this server is Health       >>%filename%
    )
    goto:eof
    일괄 처리count 수
    계산 더하기 set/a allCount+=1
    
    set allCount=0
    for %%L in (%checkList%) do set /a allCount+=1
    일괄 처리copy 복사 파일
  • 복사 파일copy 파일 이름 디렉터리 페이지
  • 복사 폴더는 xcopy로 지정한 디렉터리는 파일과 디렉터리 구조를 함께 복사합니다
  • copy %filename% "\\xxxx\DataShare\CSDN\ZhengKai\ "
    일괄 처리가 보다 크거나 작거나 같거나 작거나 크거나 같지 않음
  • EQU - 동일
  • NEQ - 아니오
  • LSS - 이하
  • LEQ - 작거나 같다
  • GTR - 보다 크다
  • GEQ - 크거나 같다

  • 
    if %errorCount% gtr 0 (
     echo ###### this server is Not Health     >>%filename%
    ) else (
     echo ###### this server is Health       >>%filename%
    )
    총결산
    상기 서술한 것은 여러분께 소개해 드린 BAT 일괄 처리 판단 서비스가 정상적으로 작동하는지 판단하는 방법(일괄 처리 명령 종합 응용)입니다. 여러분께 도움이 되고 저희 사이트에 대한 여러분의 지지에 감사드립니다!

    좋은 웹페이지 즐겨찾기