一時ディレクトリを自動でクリーンアップしたい
キーワード:CLI,外部アプリケーション起動,作業ファイル,削除,クリーンアップ,tmp,メンテナンス
シナリオ一覧に戻る
概要
一時ディレクトリをクリーンアップする場合、スクリプトが実行中でない必要があります。
実行中のスクリプトがあるか確認するには、CLIコマンド「ps」を使用します。
一時ディレクトリのクリーンアップについては、「サービスガイド(サービスの運用)」の「一時ディレクトリのクリーンアップ」を参照してください。
CLIコマンド「ps」を実行し、実行結果から実行中のスクリプトを確認します。
スクリプトからCLIコマンドを実行する方法については、「スクリプトからCLIコマンドを実行したい」を参照してください。
本スクリプトでは、「スクリプトからCLIコマンドを実行したい」で作成した「rl_reference_095プロジェクト」をサービス登録して使用します。
実行中のスクリプトが存在しない場合、「/tmp」ディレクトリ内のファイルを削除します。
処理の流れ
サンプルプロジェクトの処理の流れは以下の通りです。
- 「スクリプト呼び出し処理」でCLIバッチを実行する処理を呼び出し、「ps」コマンドを実行します。
- 「CSVファイル読み取り処理」で実行結果を読み取ります。
- 「条件分岐処理」で実行中のスクリプト数を判定し、実行中のスクリプトがない場合、「ファイル/ディレクトリ削除処理」で作業ファイルを削除します。
実行すると「/tmp」ディレクトリ内のファイルがすべて削除されます。
ポイントとなる機能
名前 |
説明 |
ツールパレット上の場所 |
スクリプト呼び出し処理 |
プロジェクト内のほかのスクリプトやサーバに登録されたスクリプトを呼び出します。 |
「基本」-「処理」-「スクリプト呼び出し」 |
処理のポイント
実行したいCLIコマンドを「CLIコマンド設定ファイル」にあらかじめ記述しておくことで、スクリプトからCLIバッチを使用してCLIコマンドを実行できます。
CLIコマンド設定ファイルの詳細については、「CLIバッチについて」を参照してください。
本シナリオではCLIコマンド「ps」を実行します。
psコマンドの実行結果を読み取ることによって、現在実行中のスクリプトがあるか確認できます。
サンプルプロジェクトの使用方法
上記処理を実装したサンプルプロジェクトを用意しています。サンプルプロジェクトを使用する場合の手順は、以下の通りです。
サンプルプロジェクトファイル名 |
rl_reference_100.zip |
- サンプルプロジェクトの展開
サンプルプロジェクトファイル「rl_reference_100.zip」を展開します。
- プロジェクトのアップロード
「rl_reference_100.zip」を展開後に作成される「rl_reference_100プロジェクト」ディレクトリがプロジェクトファイルとなります。
DataSpider Studioを起動し、マイプロジェクトの画面から[ファイル]-[ローカルからアップロード]で展開したディレクトリ「rl_reference_100プロジェクト」をアップロードしてください。
- サンプルデータの準備
「rl_reference_100.zip」を展開後に作成される「samples」ディレクトリがサンプルデータとなります。
$DATASPIDER_HOME/server/samplesディレクトリに上書きしてください。
- CLIランチャの準備
CLIランチャを用意します。
「スクリプトからCLIコマンドを実行したい」で作成した「rl_reference_095プロジェクト」を、サービス名「CLIランチャ」でサービス登録してください。
スクリプトの作成手順
プロセスフローは、「サンプルプロジェクトの説明」のスクリプト画像を参照して適宜設定してください。
- デザイナのツールパレット「基本」-「処理」-「スクリプト呼び出し」から、スクリプト呼び出し処理をスクリプトキャンバスに配置します。
- スクリプト呼び出し処理の設定は、以下のように行います。
[必須設定]タブ
[入出力]タブ

処理のポイント
|
- デザイナのツールパレット「ファイル」-「CSV」-「CSVファイル読み取り」から、CSVファイル読み取り処理をスクリプトキャンバスに配置します。
- CSVファイル読み取り処理の設定は、以下のように行います。
[必須設定]タブ

処理のポイント
- 「ps」コマンドの実行結果はタブ区切りのため、[デリミタ文字]に「タブ」を設定します。
|
- デザイナのツールパレット「基本」-「フロー」-「条件分岐」から、条件分岐処理をスクリプトキャンバスに配置します。
- 条件の設定は、以下のように行います。
[必須設定]タブ

処理のポイント
- 本サンプルでは、スクリプトから「ps」コマンドを実行するため、実行中のスクリプトは必ず1件以上になります。
- 実行中のスクリプトが1件の場合、「ps」コマンドの実行結果は4行出力され、2件以上の場合、実行結果は5行以上出力されます。
このため、実行結果の読み取り行数が4行の場合に、ほかの実行中のスクリプトは存在しないと判定しています。
|
- デザイナのツールパレット「ファイル」-「ファイル操作」-「ファイル/ディレクトリ削除」から、ファイル/ディレクトリ削除処理をスクリプトキャンバスに配置します。
- ファイル/ディレクトリ削除処理の設定は、以下のように行います。
[必須設定]タブ
- スクリプトを実行し、正常終了して「/tmp」ディレクトリ内のファイルが削除されていれば成功です。