LightFileの実行に伴い作成されるディレクトリ

LightFileを実行すると、その環境に次のディレクトリが自動で作成されます。コマンドラインオプションでこれらのパスを変更することができます。

  • ログディレクトリ 実行ログをファイルとして保存します。
  • バックアップディレクトリ ファイルサイズ削減前のファイルを保存します。
  • キャッシュディレクトリ 削減を実行した結果を記録します(同一ファイルへの再処理を防ぎます)。

これらのディレクトリパスを変更するには、--logs-dir--backup-dir--cache-dirオプションにパスを指定します。

例えばログディレクトリを/var/log/lightfile、バックアップディレクトリを/media/hdd、キャッシュディレクトリを/var/lib/lightfileに変更する場合、次のようにLightFileコマンドを実行します。

$ lightfile --logs-dir /var/log/lightfile \
  --backup-dir /media/hdd \
  --cache-dir /var/lib/lightfile \
  --serial <シリアルコード> --dir <対象ディレクトリ>

ディレクトリを指定しなかった場合の挙動

上記のディレクトリをコマンドラインオプションで指定しなかった場合、LightFileコマンドを実行したユーザーのユーザーディレクトリに次のルールでディレクトリが作成されます。

LightFileを実行したユーザーのユーザーディレクトリを$HOMEとします。

  • ログディレクトリ $HOME/lightfile/(接続先やディレクトリに基づく名称)/logs
  • バックアップディレクトリ $HOME/lightfile/(接続先やディレクトリに基づく名称)/backup
  • キャッシュディレクトリ $HOME/lightfile/(接続先やディレクトリに基づく名称)/cache

接続先ディレクトリに基づく名称は、ファイルシステムのURL表記をURLエンコードしたものです。

  • ローカルディレクトリ(/path/to/dir)に実行した場合 file%3A%2F%2Fpath%2Fto%2dir
  • FTPディレクトリに実行した場合 ftp%3A%2F%2Ftheuser%40host%2Fpath%2Fto%2Fdir

プロジェクトディレクトリによる指定

コマンドラインオプション--project-dirを用いると、ログディレクトリ、バックアップディレクトリ、キャッシュディレクトリの場所をまとめて指定することができます。

例えば次のようにLightFileコマンドを実行すると、

$ lightfile --project-dir /path/to/project --serial <シリアルコード> --dir <対象ディレクトリ>

各ディレクトリのパスは次のように決定されます。

  • ログディレクトリ /path/to/project/logs
  • バックアップディレクトリ /path/to/project/backup
  • キャッシュディレクトリ /path/to/project/cache

--project-dirオプションと--logs-dirなど個別のディレクトリパス指定のオプションを同時に指定することもできます。

同時に指定した場合は、個別のディレクトリパス指定が優先されて使用されます。

複数のディレクトリや接続先で実行する場合の注意

同一のサーバー上で、複数のディレクトリやディレクトリに対しLightFileを実行する場合、次の点に注意してください。

バックアップやキャッシュは、指定したディレクトリからの相対パスをキーとして作成されます。そのため同一のバックアップディレクトリやキャッシュディレクトリを指定すると、衝突が発生します。

例えば、/path/a と /path/b に対して、同一のバックアップディレクトリを指定して別々にLightFileを実行したとします。

$ lightfile --backup-dir /path/to/backup --serial <シリアルコード> --dir /path/a
$ lightfile --backup-dir /path/to/backup --serial <シリアルコード> --dir /path/b

もし、/path/a/photo.jpg/path/b/photo.jpgが存在すると、どちらも/path/to/backup/photo.jpgとしてバックアップが作成されるので、どちらかのファイルが上書きされて消失します。

このような衝突を避けるため、デフォルトのプロジェクトディレクトリは$HOME/lightfile/(接続先やディレクトリに基づく名称)と接続先によりユニークなディレクトリとなっています。