DataSpider Servistaの使用方法を東谷君&みかさんと学ぶこのコーナー、今回は「CLI Consoleのコマンドをスクリプトから呼び出す」というテクニックに焦点を当てて、いろいろな使用例を紹介します。通常のスクリプト実行ではできないさまざまな処理が実現できるこの方法、ぜひこの記事を参考にチャレンジしてみてください。
CLI Consoleって?
くも子:
[外部アプリケーション起動]処理からCLI Consoleのコマンドを呼び出すといろいろできるクモ!
東谷君:
いきなり!
みかさん:
はい、というわけで今回は知っていると便利なTIPS、外部アプリケーション起動でCLI Consoleのコマンドを呼び出そう編よ!
くも子:
パチパチクモクモ!
東谷君:
おいけてぼりだ・・・・。
みかさん:
ところで東谷君はCLI Consoleを使ったことある?
東谷君:
今のところないですね~。どんなものなんですかね?
みかさん:
簡単に言うと、DataSpiderServerを管理するためのコマンドラインのインタフェースよ。
東谷君:
こまんどらいんのいんたーふぇ~すっすか・・。
みかさん:
具体的なイメージはヘルプの[運用ツール]-[CLI Console]にコマンド一覧が掲載されているのでこれを見ると分かると思うわ。
DataSpider Servista 4.0 ヘルプ「CLI Console」
https://dl.appresso.com/help/dss40/help/ja/cli/cli.html
東谷君:
おお、こういうコマンドがあるんですね~。なるほど、普段Studioから行っているような操作や情報確認をコマンドからできるようにしているわけですね。
▲CLI Consoleの起動画面。コマンドを使用してさまざまな操作・確認が可能だ
みかさん:
そうそう、これを使ってDataSpiderの稼働状況をチェックしたり、操作を行ったりもできるというわけ。
東谷君:
なるほど、以下パスにCLI.exeがあるので、以下のものを起動してコマンドを実行するわけですね。
$DATASPIDER_HOME/server/bin/CLI.exe
あれ、でもこれ手動で実行するものじゃないんですか?
みかさん:
うん、手動でコマンドを打ち込む方法の他に、「CLIバッチ」というコマンドをバッチプログラムから実行する方法も用意されているので、これを使えばスクリプトから実行もできるのよ。
東谷君:
あーヘルプに「CLIバッチについて」という項目ありますね。なるほど、これでCLI.exeを呼び出すときに引数でCLIコマンド設定ファイルの情報を渡せばいいんですね。
みかさん:
その項目に設定方法の詳細が書いてるから、よく読んでおいてね。
東谷君:
なるほど、これでスクリプトからCLI Consoleを呼び出すスクリプトを作れば、スケジュールトリガーで一定期間ごとに実行したり、HTTPトリガーでブラウザから実行したりさまざまな方法で自動化できますね。
みかさん:
そういうこと! アダプタではできないような操作もできるので、この方法を覚えておくといろいろ役立つよ。
使用例の紹介
東谷君:
具体的にはどのようなことに使えるんですかね?
みかさん:
このDSTNの「スキルアップセンター」の「サンプルスクリプトのダウンロード」に幾つか実際にこの方法を使ったスクリプトが紹介されているわ。例えばこれ。
「スクリプト実行状況とメモリ使用量の関連を調査する」
http://dstn.appresso.com/skillup_detail?id=1653
東谷君:
なるほど。「memstat」コマンドや「threadstat」コマンドを使用して、DataSpiderの稼働状況をファイルに出力しているわけですね。
みかさん:
そうそう、このような感じでDataSpider自体の稼働状況を出力することができるのよ。このようにファイル出力を使用して、もうちょっと複雑な処理を作ることもできるわ。例えばこれよ。
「メモリ監視(メモリ使用量が600MB以上ならGCを実行)」
https://dstn.zendesk.com/hc/ja/articles/220073928
東谷君:
このスクリプトの場合は、「memstat」コマンドで出力した結果を確認してGCを実行するところまでを自動化してるわけですね。
みかさん:
そうね、このスクリプトをスケジュールトリガーなどで定期実行することによって、メモリー使用量を押えることなどができるわけよね。また、異常状態が無いのかを監視するスクリプトとしては以下のような使い方があるわ。
「30分以上動作しているスクリプトを検出する(トリガー起動)」
https://dstn.zendesk.com/hc/ja/articles/220346467
東谷君:
これは「ps」コマンドを使用しているわけですね。
みかさん:
そうね、「ps」コマンドの結果はタブ区切りで出力されるから、それを[CSV読み取り]処理でタブ区切りのテキストとして読み取って、その結果を使って処理を行っているわ。
同じように「ps」コマンドを使用して、一時ファイルの削除を行うスクリプト例もあるわ。
「スクリプトの実行有無を確認して、作業ファイルを削除する」
https://dstn.zendesk.com/hc/ja/articles/220073968
みかさん:
この場合、スケジュールトリガーで定期的に実行して、削除に適したタイミングで一時ファイルの削除を行って不要なファイルが残らないようにするという処理を作ることができるというわけね。
東谷君:
なるほどね~。いろいろな使い方がありますね。確かにCLI Consoleでどのようなことができるかを知ってけば便利に使えそうですね。
みかさん:
そうそう、CLI Consoleは単にコマンドラインのコンソールって用途だけではなくて、DataSpiderで実現できるさまざまな自動化を支援助することのできるツールなのよ。ぜひ活用してみてね!
東谷君:
勉強になりました!
くも子:
パチパチクモクモ!
駆け足で紹介したさまざまなスクリプト、上記の4つのスクリプトはすべてダウンロードして実行可能です。ぜひ実際に試してみて、いろいろな使い方を見つけてみてください。