サービスが正常に稼働しているかどうかを判断するためのBATバッチ処理(バッチ処理コマンド総合アプリ)
まず、バッチ処理の基本的な考え方について紹介します。
バッチ(Batch)とは、バッチスクリプトとも呼ばれる。バッチ処理とはその名の通り、対象を一括して処理することであり、DOSやWindowsシステムで使用される簡易スクリプト言語とされることが多い。バッチファイルの拡張子はbatまたはcmdで、バッチスクリプトには一般的に2つのタイプがある。強力な写真編集ソフト「Photoshop」をベースにした「DOSバッチスクリプト」と、DOSコマンドをベースに、特定の操作を実現するためにDOSコマンドを一括して実行する「PSバッチスクリプト」である。さらに複雑な場合には、C言語やBasicなどの高級言語のように、if、for、gotoなどのコマンドを使用してプログラムの実行処理を制御する必要がある。より複雑なアプリケーションを実現する必要がある場合には、システム自身が提供する外部コマンドやサードパーティが提供するツールやソフトウェアなど、外部プログラムを活用する必要がある。バッチプログラムはコマンドライン環境で実行されるが、コマンドラインソフトウェア以外も利用でき、現在のシステムで実行可能なプログラムなら何でもバッチファイルに入れて実行することが可能である。
前置き
qlik senseのサーバーにはヘルスチェック(健康状態の監視)プログラムが必要なので、そのバッチスクリプトを紹介します。
一般的な機能は以下の通りです。
- 現在の日付と時刻を一括で取得する
- 動的なファイル名の一括生成
- ログファイルへのエコーの一括出力
- 一括探索リスト
- バッチ関数とコール関数
- サービスが稼働しているかどうかの判断
- バッチ数
- ファイルの一括コピー
- バッチは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" & quot;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%
\\Ίταν ταν για
現在の日時を一括取得し、動的なファイル名を生成する
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 ============================================ >%filename%
echo Health Checking by Qlik Team >>%filename%
echo ============================================ >>%filename%
バッチトラバーサルのリスト
リストで定義すると
- for %%L トラバースに使用する変数について
- (%checkList%) で、どの配列を反復処理するか。
- do echo %%L 何に対して反復処理を行うか。
set checkList="QlikSenseServiceDispatcher" "QlikSenseSchedulerService" "QlikSenseRepositoryService" "QlikSenseRepositoryService" " quot;QlikSenseRepositoryDatabase" "QlikSenseProxyService" "QlikSensePrintingService" " QlikSenseEngineService" "QlikLoggingService"
echo ============================================ >%filename%
echo Health Checking List >>%filename%
for %%L in (%checkList%) do echo %%L
echo ============================================ >>%filename%
バッチ関数とコール関数
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
バッチ回数
カウントプラス1セット /a allCount+=1
set allCount=0
for %%L in (%checkList%) do set /a allCount+=1
ファイルの一括コピー
- コピーファイル コピーファイル名 ディレクトリ ページ
- xcopyでフォルダをコピーし、指定されたディレクトリをファイルとディレクトリ構造でコピーします。
コピー %filename% " \\Ίταν ταν για "
より大きい、より小さい、等しい、より小さくない、より大きくない、等しくないを一括して表示する。
- 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バッチ処理の方法(バッチコマンド総合アプリ)をご紹介しましたが、皆様のお役に立てれば幸いです!また、BinaryDevelopのサイトを応援していただき、本当にありがとうございました。
関連
-
バッチバットは、同じ内容のtxtテキストの最初の列の最後の列に数字を追加する
-
Windowsのbatスクリプトコマンドを使用してワンクリックでMySQLサービスを開始する方法
-
DOSバッチ処理では、カレントディレクトリのソリューションとしてUNCパスをサポートしていません。
-
mavenコマンドのBATスクリプトを呼び出して共有する
-
BATとHTMLのハイブリッドプログラミングの記述方法
-
N日前または指定日時(前後)に作成(または変更)されたファイルをバッチ処理で削除する。
-
Dosバッチ書き込みワンクリッククリーンシステムジャンクbatコード
-
Batはforfilesを使って期限切れのファイルを自動的に一括削除する
-
重複行のフィルタリングを行うバッチ処理
-
カオスな雨を実現するバッチプロセス(マトリクス効果)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン