fnb — Fetch'n'Backup¶
fnb は、2段階のシンプルなバックアップツールです。 rsync をベースに、リモートからのデータ取得とローカル/クラウドへのバックアップを手軽に実行できます。
Simple config. Sharp execution. Safe data.
🚀 主な機能¶
- Fetch — リモートサーバーからローカルにデータを取得
- Backup — ローカルデータをOneDrive等にバックアップ
- Sync — Fetch + Backup を一括実行
- Status — 最新スナップショットの状態を表示
- Init — 初期設定ファイル(
config.toml)を生成
🔰 Quick Start¶
# 設定ファイルを作成
fnb init
# 設定ファイルを編集
vi fnb.toml
vi .env.plain
cp .env.plain .env
# コマンドを実行
fnb sync logs
fnb initで必要な設定ファイルのひな型を生成できます。
fnb.tomlを編集してパスを設定します。
.env.plainを編集してリモートサーバーのログインパスワードを設定します。
.env.plainの内容は平文で保存されることに注意してください。 このファイルを.envというファイル名に変更して、dotenvxで暗号することを推奨します。
🔐 環境変数の暗号化(推奨)¶
# 環境変数を暗号化
dotenvx encrypt -f .env
# .env: 暗号化されたパスサード
# .env.keys: 秘密鍵
# rfbコマンドを実行
dotenvx run -- fnb sync logs
dotenvxで.envを暗号化できます。
🧰 コマンド例¶
# Fetch(リモート → ローカル)
fnb fetch TARGET_LABEL
# Backup(ローカル → クラウドストレージなど)
fnb backup TARGET_LABEL
# Fetch → Backup を順番に一括実行
fnb sync TARGET_LABEL
# 設定内容の確認
fnb status
# config.toml の初期化
fnb init
🛠️ インストール¶
詳細はインストールガイドを参照してください。
📦 CLIコマンド一覧¶
fnb コマンドは以下のようなサブコマンドで構成されます:
fetch: リモートからデータを取得backup: ローカルデータをバックアップsync: fetch + backup を連続実行status: 有効なタスクの状態を確認init: 初期設定ファイル(rfb.toml,.env)を生成
📝 設定ファイル¶
config.toml
各処理対象のディレクトリごとに
fetch / backup
の設定を持ちます。
[fetch.SECTION_NAME]
label = "TARGET_LABEL"
summary = "Fetch data from remote server"
host = "user@remote-host"
source = "~/path/to/source/"
target = "./local/backup/path/"
options = ["-auvz", "--delete", '--rsync-path="~/.local/bin/rsync"']
enabled = true
[backup.SECTION_NAME]
label = "TARGET_LABEL"
summary = "Backup data to cloud storage"
host = "none" # <- ローカル操作
source = "./local/backup/path/" # <- fetchのtargetパス
target = "./cloud/backup/path/"
options = ["-auvz", "--delete"]
enabled = true
詳細な設定例は設定ファイルガイドを参照してください。
🔐 認証について¶
SSH パスワード入力は pexpect を用いて自動化されます。
必要に応じて .env ファイルに接続設定等を記載可能です。
🪪 ライセンス¶
MITライセンス
📬 貢献¶
Issue や PR は歓迎です。 お気軽にどうぞ。ドキュメントの改善提案も歓迎です。