定期的にホームネットワークのRaspberry Piに自動的にバックアップしたいと思います。自宅でバックアップするだけで十分です。
私が「自動バックアップを実行する方法」について読んだすべてのガイドでは、私のPyにパスワードのないSSHキーを入れるように指示されています。自分のコンピュータにアクセスできる人は誰でも自分のバックアップにアクセスできるので、これをしたくありません。これはバックアップの目的の1つを完全に排除します。
現在のソリューションは、パスワードで保護されたSSHキーとrsyncスクリプトです。動作に時間がかかりましたが、今すぐホームネットワークにログインするとすぐにパスワードの入力を求められ、バックアップされます。
restic
今、ある種のバージョンのバックアップが必要なので、使いたいです。他のデバイスもバックアップしたいです。 Resticガイドは、再びパスワードのないSSHキーを使用するように言いました。
今私は反対の考えを持っています。つまり、私の(オフライン)piはパスワードなしで自分のラップトップにSSHでアクセスできます(しかし使用は制限されていますresric
)。スクリプトを使用していくつかのsystemd.timerを実行して自分のラップトップにアクセスできることを確認し、その場合はバックアップを開始できます。
しかし、これは深刻に見え、これが一般的なシナリオであると確信しています。しかし、ガイドが見つかりません。
一般的な方向を教えてもらえますか?私がしたいことについてもっと知るために、いくつかの用語も役に立ちます!
ベストアンサー1
組み合わせると、バックアップしたいマシンから接続できるREST APIを提供するサービスを使用して、バックアップサーバーにサービスを設定restic
できます。rclone
通常REST APIを使用するrclone
restic
restic
たくさんrestic
SFTP経由で使用するよりも高速です。
rclone serve restic --help
SSLの使用方法やhtpasswd
認証方法など、これについてはよく文書化されています。この文書を注意深く読んでください。。バックアップサーバーがパブリックサーバーであるか(そうではありません)、個人以外の設定のためにバックアップサーバーを実行している場合は、どのような方法でも個々のユーザーを認証してセキュリティを維持する必要があります。
ローカルネットワークの外部で使用できるようにするには、localhost
バックアップサーバーとして使用されるホストに少なくとも次の設定が必要です。
rclone serve restic --addr :8080 /var/backup/restic
/var/backup/restic
リポジトリを保存するパスは次のとおりですrestic
(上記のコマンドを実行するユーザーには、そのパスに対する書き込み権限が必要なため、専用のサービスユーザーを作成する必要があります)。--addr :8080
「利用可能なすべてのインターフェイスでポート8080にバインド」を意味します(デフォルトではrclone
バインディングのみlocalhost:8080
)。
その後、次のコマンドを使用してここに接続できます(これにより、restic
リポジトリが初期化され、自分のホームディレクトリの最初のスナップショットが作成されます)。
restic -r rest:http://backupsrv:8080/testrepo init
restic -r rest:http://backupsrv:8080/testrepo backup "$HOME"
restic
ここでは、名前付きリポジトリを作成して使用しようとすると、testrepo
バックアップサーバーにアクセスできると仮定しますbackupsrv
。ホスト名を正しい名前またはIP番号に変更する必要があります。
これにより、リポジトリのパスワードを求めるプロンプトがインタラクティブに表示されますが、通常どおり環境変数にパスワードを渡すことができます(代わりにリポジトリを渡すことができるRESTIC_PASSWORD
ように)。restic
RESTIC_REPOSITORY
-r ...
個人用Synology NASで次のDockerコンテナ(ファイルdocker-compose.yml
)を実行します。
version: '3'
services:
rclone:
image: rclone/rclone:latest
container_name: rclone
hostname: diskstation.local
ports:
- 18080:8080
restart: unless-stopped
command: ["serve","restic","/backup"]
environment:
- RCLONE_ADDR=0.0.0.0:8080
- RCLONE_STATS=1h
- RCLONE_VERBOSE=1
volumes:
- /volume1/Restic/backup:/backup
NASのポート18080でREST APIを提供し、restic
ここにバックアップを保存できます/volume1/Restic/backup
(コンテナのバインドマウントを介して)。rclone
隔離されたLAN(ファイアウォールおよびキャリアグレードNATの背後)にあるプライベートNASであるため、セットアップセキュリティは非常に低いです。