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

Avatar
dstn

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

キーワード: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コマンドの実行結果を読み取ることによって、現在実行中のスクリプトがあるか確認できます。

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

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

サンプルプロジェクトのダウンロード 逆引きリファレンス シナリオ100のサンプルプロジェクト
  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ファイル読み取り処理をスクリプトキャンバスに配置します。
    • CSVファイル読み取り処理の設定は、以下のように行います。

      [必須設定]タブ



      処理のポイント
      • 「ps」コマンドの実行結果はタブ区切りのため、[デリミタ文字]に「タブ」を設定します。

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

      [必須設定]タブ



      処理のポイント
      • 本サンプルでは、スクリプトから「ps」コマンドを実行するため、実行中のスクリプトは必ず1件以上になります。
      • 実行中のスクリプトが1件の場合、「ps」コマンドの実行結果は4行出力され、2件以上の場合、実行結果は5行以上出力されます。
        このため、実行結果の読み取り行数が4行の場合に、ほかの実行中のスクリプトは存在しないと判定しています。

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

      [必須設定]タブ


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

コメント

ログインしてコメントを残してください。

Powered by Zendesk