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

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

概要

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

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

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

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

処理の流れ

サンプルプロジェクトの処理の流れは以下の通りです。
  1. スクリプト呼び出し処理」でCLIバッチを実行する処理を呼び出し、「ps」コマンドを実行します。
  2. CSVファイル読み取り処理」で実行結果を読み取ります。
  3. 条件分岐処理」で実行中のスクリプト数を判定し、実行中のスクリプトがない場合、「ファイル/ディレクトリ削除処理」で作業ファイルを削除します。
実行すると「/tmp」ディレクトリ内のファイルがすべて削除されます。

ポイントとなる機能

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

処理のポイント

実行したいCLIコマンドを「CLIコマンド設定ファイル」にあらかじめ記述しておくことで、スクリプトからCLIバッチを使用してCLIコマンドを実行できます。
CLIコマンド設定ファイルの詳細については、「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. デザイナのツールパレット「ファイル」-「CSV」-「CSVファイル読み取り」から、CSVファイル読み取り処理をスクリプトキャンバスに配置します。

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

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

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