まだ全然機能もないし、あらあらですが stand:v0.0.1 を作ったので、成り立ちと、将来展望などを残したいと思います。 実際何を作ったかというと、よくあるバックアップ・リストアに関するツールを、Golang で実装してみた!って感じです。
今はまだ差別化は出来てないし、機能としても未熟だけど…

まずはじめに

まず今回実装した範囲は、個人利用前提で考えています。

  1. 対象ディレクトリを圧縮
  2. GoogleDrive管理下で保存
  3. 保存は永久的ではなく世代管理
  4. 何かアレば戻せるように

ある程度充実してきたら、業務利用だったり出来るように、
マウントディレクトリ依存しない形に対応させていきたいと思っています。

ツール名

なんかJOJO感でちゃうけど、stand としています。
意味合いとしては近くて、いつも近くにいて守ってくれる者になってくれたらなーという感じ
守る=データロストとか

使い方

インストール方法などは、この記事の最後の方に書いてますので、一旦ここでは省略します。

実行方法は簡単で

$ stand -conf /path/to/config.yml

この時の /path/to/config.yml の構成はシンプルで

# /path/to/config.yml
target: "/path/to/target/dir"
output: "/path/to/output/dir"
zip_name: "zipfile's prefix"
life_cycle: 7

どんな処理が行われるかというと

  1. target対象をzip化
  2. zip_name_YYYYMMDDHimmss.zip作成
  3. outputディレクトリに保存
  4. 直近の7個以外は保存しないので、削除

と言った感じで動きます。

今はまだスケジューリングなどの機能が無いので、cronなどで利用

Timemachineがあるやん?!!

timemachineは十分強いです。 Drop boxやbox、そしてGoogle Driveで保存する事で、ローカルの容量を気にしなくて良い点と 他端末からのアクセスが可能になるというメリットもあると思ってます。
現時点ではまだまだですが

Release versions

実行ファイルは、Githubのreleasesで管理しています。
執筆時点では、v0.0.1

v0.0.1について

現在は以下のOSのみ対応しています。
release済みOS以外は、go install を用いてインストールお願いします

  • darwin amd64
  • linux amd64

インストール手順

For Mac(darwin)

$ curl -o /usr/local/bin/stand https://github.com/shinofara/stand/releases/download/v0.0.1/stand_darwin_amd64 && chmod a+x /usr/local/bin/stand
$ which stand
/usr/local/bin/stand

For Linux

$ curl -o /usr/local/bin/stand https://github.com/shinofara/stand/releases/download/v0.0.1/stand_linux_amd64 && chmod a+x /usr/local/bin/stand
$ which stand
/usr/local/bin/stand

OtherOS

$ go install github.com/shinofara/stand

Future

  • S3との連携
  • ターゲットを複数指定
  • ディレクトリのみではなく、ファイルもバックアップ対象
  • CircleCIにマージ後、自動でrelease
  • etc...