一時ディレクトリを自動でクリーンアップしたい
キーワード:CLI,非対話,外部アプリケーション起動,作業ファイル,削除,クリーンアップ,tmp,メンテナンス
シナリオ一覧に戻る
概要
一時ディレクトリをクリーンアップする場合、スクリプトが実行中でない必要があります。
実行中のスクリプトがあるか確認するには、CLIコマンド「ps」を使用します。
一時ディレクトリのクリーンアップについては、「サービスガイド(サービスの運用)」の「一時ディレクトリのクリーンアップ」を参照してください。
CLIコマンド「ps」を実行し、実行結果から実行中のスクリプトを確認します。
スクリプトからCLIコマンドを実行する方法については、「スクリプトからCLIコマンドを実行したい」を参照してください。
本スクリプトでは、「スクリプトからCLIコマンドを実行したい」で作成した「rl_reference_095プロジェクト」をサービス登録して使用します。
実行中のスクリプトが存在しない場合、「/tmp」ディレクトリ内のファイルを削除します。
処理の流れ
サンプルプロジェクトの処理の流れは以下の通りです。
- 「スクリプト呼び出し処理」でCLI Consoleの非対話モードを実行する処理を呼び出し、「ps」コマンドを実行します。
- 「CSVファイル読み取り処理」で実行結果を読み取ります。
- 「条件分岐処理」で実行中のスクリプト数を判定し、実行中のスクリプトがない場合処理を続行します。
- 「ファイル名一覧取得処理」でディレクトリ内のファイル名一覧を取得します。
- 「マッピング処理」の「条件による抽出ロジック」でマッチしたファイルのみを抽出します。
- 「繰り返し(データ件数)処理」でファイル件数分、以下の処理を繰り返します。
- 「変数代入処理」でファイル名をスクリプト変数に代入します。
- 「ファイル/ディレクトリ削除処理」で作業ファイルを削除します。
実行すると「/tmp」ディレクトリ内のファイルが削除されます。
ポイントとなる機能
| 名前 |
説明 |
ツールパレット上の場所 |
| スクリプト呼び出し処理 |
プロジェクト内のほかのスクリプトやサーバに登録されたスクリプトを呼び出します。 |
「基本」-「処理」-「スクリプト呼び出し」 |
処理のポイント
実行したいCLIコマンドを「コマンド設定ファイル」にあらかじめ記述しておくことで、スクリプトからCLI Consoleの非対話モードを使用して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行の場合に、ほかの実行中のスクリプトは存在しないと判定しています。
|
- デザイナのツールパレット「ファイル」-「ファイル操作」-「ファイル名一覧取得」から、ファイル名一覧取得処理をスクリプトキャンバスに配置します。
- ファイル名一覧取得処理の設定は、以下のように行います。
[必須設定]タブ
- マッピング処理のMapperエディタを開き、削除対象のデータを抽出する処理を作成します。
- マッピングキャンバスは、以下のように設定します。
マッピングキャンバス

| 番号 |
ロジック名 |
説明 |
ツールパレット上の場所 |
| (1) |
条件による抽出 |
条件にマッチしたもののみ繰り返して出力します。 |
「繰り返し」-「条件指定」-「条件による抽出」 |
| (2) |
正規表現にマッチ |
入力文字列が指定正規表現にマッチするかどうか判定します。
システムやコンポーネントのテンポラリで使用されるファイルや、削除対象外としたいファイルを入力します。 |
「条件」-「文字列」-「正規表現にマッチ」 |
| (3) |
Not演算 |
入力真偽値の否定(NOT論理)を返します。 |
「条件」-「真偽」-「Not演算」 |
処理のポイント
- [正規表現パターン]にファイル名またはディレクトリ名を表す正規表現を設定することで、削除対象から除外することが可能です。
正規表現の詳細については、「正規表現にマッチ」を参照してください。
|
- デザイナのツールパレット「基本」-「フロー」-「繰り返し(データ件数)」から、繰り返し(データ件数)処理をスクリプトキャンバスに配置します。
- 繰り返し(データ件数)処理の設定は、以下のように行います。
[必須設定]タブ
- 変数代入処理のMapperエディタを開き、抽出したファイルの値をスクリプト変数のファイル名にマッピングします。
- マッピングキャンバスは、以下のように設定します。
マッピングキャンバス
- デザイナのツールパレット「ファイル」-「ファイル操作」-「ファイル/ディレクトリ削除」から、ファイル/ディレクトリ削除処理をスクリプトキャンバスに配置します。
- ファイル/ディレクトリ削除処理の設定は、以下のように行います。
[必須設定]タブ
[削除オプション]タブ
- スクリプトを実行し、正常終了して「/tmp」ディレクトリ内のファイルが削除されていれば成功です。