Skip to content

mukohara/trigora

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Trigora

本システムは,計算機上でのユーザのファイル操作をリアルタイムに監視し,監視の結果出力されたファイル操作履歴に対応してあらかじめ設定した処理を自動で実行するシステムである.設定する項目は,PATH (どのファイルが),WHEN (どんなファイル操作を受けた時),DO (どのような処理を実行する) である.

"Trigora"は,"Trigger"をもとに作られた造語であり,"Gora"は,スペイン語で「山」を意味する言葉である.この名前は,スタートや起点を示す「トリガー」と,高みを目指すという意味を込めた「山」という言葉を組み合わせたものである.Trigoraは,ファイル操作を起点にして,ユーザーのビジネスや生活の質を向上させることを目指したシステムである.

Requirements

Setup

Install Redis

Linux

$ sudo add-apt-repository ppa:redislabs/redis
$ sudo apt-get update
$ sudo apt-get install redis

Usage

Settings

自動実行処理の設定

  1. conf/actions/ に,自動実行したい処理の設定を記述した YAML ファイルを作成する.
path: /path/of/target/file
when: event_name
do: gcc /path/of/target/file
  • path には,監視対象ファイルのパスを記述する. , 区切りで複数のファイルを指定可能.また,* をワイルドカードとして指定可能.
  • when には,監視対象のファイル操作を記述する. , 区切りで複数のファイル操作を指定可能.指定可能なファイル操作は,createupdatereadremoverename
  • do には,実行する処理を記述する. CLI で実行するコマンドを記述する.
  1. conf/actions/actions.conf.yaml で,使用する設定ファイルを指定する.
actions:
  - action1.example.yaml
  - action2.example.yaml

Launch

以下のように実行するには,bin/trigora にパスを通す必要がある.

  • システム有効化 $ trigora start
  • システム無効化 $ trigora stop

Clustering file access log

ファイルアクセス履歴が出力された複数のファイルをクラスタリングする.ファイルは,それぞれ分類したい作業に対応したファイルである.ファイルアクセス履歴は,システムを有効化した後,随時 log/fuse-watch.log に出力される. 2つのコーディング作業と1つのウェブブラウジングのファイルアクセス履歴をクラスタリングする例を以下に示す.

$ python clustering.py coding1.log coding2.log browsing1.log

分類するクラスタ数に応じて,clustering.py 565行目の KMeans メソッドの引数 n_clusters の値を変更する.例えば上記の例において,コーディング作業とウェブブラウジングに分類したい場合は,以下のように n_cluster=2 とする.

kmeans = KMeans(n_clusters=2, max_iter=400, init="random", n_init="auto")

Creating Heat Map of file access

ファイルアクセス履歴が出力されたファイルをヒートマップとして出力する.ファイルアクセス履歴を任意の時間間隔で分割し,それぞれの間隔で様々な拡張子を持つファイルやドットファイルへのアクセス回数を集計しヒートマップとして出力する. Python を用いたコーディング作業により得られたファイルアクセス履歴をヒートマップ化する実行例と得られたヒートマップを以下に示す.

$ python heatmap.py coding1.log

ファイルアクセス履歴の分割時間間隔は,heatmap.py 563行目の separate_by_time(5) メソッドのように指定する.この場合は5秒間隔で分割を行う.また,ヒートマップのタイトルなどは Heatmap クラスの show(self, matrix) メソッドで指定する.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published