LoginSignup
5
5

More than 5 years have passed since last update.

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

Last updated at Posted at 2016-06-30

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は書くのが楽しいですね

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5