Go
S3
golang

Golangでディレクトリorファイルのバックアップツールを作ってる

More than 1 year has passed since last update.

Golang の勉強&必要にかられて、shinofara/standという、バックアップツールを作りました。

まだまだ機能は少ないですが


今ある機能



  • zip, tar + gzipに対応

  • マウント先などローカルからアクセス可能なディレクトリへの保存や、S3への保存

  • 世代管理(過去何代まで保存するか)


これから実装予定


  • ファイルの暗号化・復号化

  • リストアの仕組み


使い方(Usage)


インストール

$ go install github.com/shinofara/stand

もしくは、Releaseから最新のバイナリを取得

現在はMacと、Linux64bitsupport

※これ以外のOSの場合は、自前でお願いします。


シンプルな使い方

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


YAMLの構成

# /path/to/config.yml

- type: file
path: "/path/to/file/path"
storages:
- path: "/path/to/local/directory"
life_cycle: 1
- type: dir
path: "/path/to/compress/target/directory"
compression:
prefix: sample # prefix_YYYYMMDDHHMiss.zip
format: zip # or tar
storages:
type: s3
path: "/path/to/s3/path"
life_cycle: 2
s3:
access_key_id: AKXXXXXXXXXXXX
secret_access_key: yXxxxxxxXXXXXXXXXXXXXXXX
region: "ap-northeast-1"
bucket_name: "backup_bucket_name"

ACCESS_KEY などは環境変数でも可能

$ export AWS_ACCESS_KEY_ID=AKIXXXXXXXXXXXXXX

$ export AWS_SECRET_ACCESS_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
$ export AWS_DEFAULT_REGION=ap-northeast-1


最後に

まだまだ機能追加する予定、そしてテストもちゃんと書かねば

あとはエラー制御とか課題は多いけど、、、


結論

Golangは書くのが楽しいですね