一時ディレクトリを自動でクリーンアップしたい

キーワード:CLI,非対話,外部アプリケーション起動,作業ファイル,削除,クリーンアップ,tmp,メンテナンス
シナリオ一覧に戻る

概要

一時ディレクトリをクリーンアップする場合、スクリプトが実行中でない必要があります。
実行中のスクリプトがあるか確認するには、CLIコマンド「ps」を使用します。
一時ディレクトリのクリーンアップについては、「サービスガイド(サービスの運用)」の「一時ディレクトリのクリーンアップ」を参照してください。

サンプルプロジェクトの説明

CLIコマンド「ps」を実行し、実行結果から実行中のスクリプトを確認します。
スクリプトからCLIコマンドを実行する方法については、「スクリプトからCLIコマンドを実行したい」を参照してください。
本スクリプトでは、「スクリプトからCLIコマンドを実行したい」で作成した「rl_reference_095プロジェクト」をサービス登録して使用します。

実行中のスクリプトが存在しない場合、「/tmp」ディレクトリ内のファイルを削除します。

処理の流れ

サンプルプロジェクトの処理の流れは以下の通りです。
  1. スクリプト呼び出し処理」でCLI Consoleの非対話モードを実行する処理を呼び出し、「ps」コマンドを実行します。
  2. CSVファイル読み取り処理」で実行結果を読み取ります。
  3. 条件分岐処理」で実行中のスクリプト数を判定し、実行中のスクリプトがない場合処理を続行します。
  4. ファイル名一覧取得処理」でディレクトリ内のファイル名一覧を取得します。
  5. マッピング処理」の「条件による抽出ロジック」でマッチしたファイルのみを抽出します。
  6. 繰り返し(データ件数)処理」でファイル件数分、以下の処理を繰り返します。
  7. 変数代入処理」でファイル名をスクリプト変数に代入します。
  8. ファイル/ディレクトリ削除処理」で作業ファイルを削除します。
実行すると「/tmp」ディレクトリ内のファイルが削除されます。

ポイントとなる機能

名前 説明 ツールパレット上の場所
スクリプト呼び出し処理 プロジェクト内のほかのスクリプトやサーバに登録されたスクリプトを呼び出します。 「基本」-「処理」-「スクリプト呼び出し」

処理のポイント

実行したいCLIコマンドを「コマンド設定ファイル」にあらかじめ記述しておくことで、スクリプトからCLI Consoleの非対話モードを使用してCLIコマンドを実行できます。
コマンド設定ファイルの詳細については、「コマンド設定ファイルの記述方法」を参照してください。
本シナリオではCLIコマンド「ps」を実行します。
psコマンドの実行結果を読み取ることによって、現在実行中のスクリプトがあるか確認できます。

サンプルプロジェクトの使用方法

上記処理を実装したサンプルプロジェクトを用意しています。サンプルプロジェクトを使用する場合の手順は、以下の通りです。

サンプルプロジェクトファイル名 rl_reference_100.zip
  1. サンプルプロジェクトの展開
    サンプルプロジェクトファイル「rl_reference_100.zip」を展開します。

  2. プロジェクトのアップロード
    「rl_reference_100.zip」を展開後に作成される「rl_reference_100プロジェクト」ディレクトリがプロジェクトファイルとなります。
    DataSpider Studioを起動し、マイプロジェクトの画面から[ファイル]-[ローカルからアップロード]で展開したディレクトリ「rl_reference_100プロジェクト」をアップロードしてください。

  3. サンプルデータの準備
    「rl_reference_100.zip」を展開後に作成される「samples」ディレクトリがサンプルデータとなります。
    $DATASPIDER_HOME/server/samplesディレクトリに上書きしてください。

  4. CLIランチャの準備
    CLIランチャを用意します。
    スクリプトからCLIコマンドを実行したい」で作成した「rl_reference_095プロジェクト」を、サービス名「CLIランチャ」でサービス登録してください。

スクリプトの作成手順

プロセスフローは、「サンプルプロジェクトの説明」のスクリプト画像を参照して適宜設定してください。
  1. ファイル名として使用するスクリプト変数を作成します。

  2. デザイナのツールパレット「基本」-「処理」-「スクリプト呼び出し」から、スクリプト呼び出し処理をスクリプトキャンバスに配置します。

  3. デザイナのツールパレット「ファイル」-「CSV」-「CSVファイル読み取り」から、CSVファイル読み取り処理をスクリプトキャンバスに配置します。

  4. デザイナのツールパレット「基本」-「フロー」-「条件分岐」から、条件分岐処理をスクリプトキャンバスに配置します。

  5. デザイナのツールパレット「ファイル」-「ファイル操作」-「ファイル名一覧取得」から、ファイル名一覧取得処理をスクリプトキャンバスに配置します。

  6. マッピング処理のMapperエディタを開き、削除対象のデータを抽出する処理を作成します。

  7. デザイナのツールパレット「基本」-「フロー」-「繰り返し(データ件数)」から、繰り返し(データ件数)処理をスクリプトキャンバスに配置します。

  8. 変数代入処理のMapperエディタを開き、抽出したファイルの値をスクリプト変数のファイル名にマッピングします。

  9. デザイナのツールパレット「ファイル」-「ファイル操作」-「ファイル/ディレクトリ削除」から、ファイル/ディレクトリ削除処理をスクリプトキャンバスに配置します。

  10. スクリプトを実行し、正常終了して「/tmp」ディレクトリ内のファイルが削除されていれば成功です。