web-dev-qa-db-ja.com

rsnapshotクライアントからサーバーへのプッシュ

私はrsnapshotがローカルファイルシステム用に私のものをバックアップするための素晴らしいツールであることを発見しました。次に、rsyncサーバーにパラメーターを指定するrsnapshot_Push.confファイルを実行する必要があります。これを行う正しい方法は何ですか? rsyncを使用して/ rsnapshot-backups/localhost /をrsyncサーバーに同期できますか。

5
user13123

Rsnapshotは、設計によりプルベースです。 Rsnapshotの力はハードリンクを使用することにあり、ローカルファイルシステムでのみ機能します。 (nfsはハードリンクをサポートしているため使用できますが、sshfsなどは使用できません)。

プッシュシナリオでの最適なソリューションは、rsyncを使用してサーバー上のバックアップディレクトリに単純にプッシュし、rsnapshotがそのディレクトリからのスナップショットを設計どおりに処理できるようにすることです。 Rsnapshotは、変更がrsyncによって導入されたか、ファイルを保存して導入されたかを気にしません。

Rsnapshot FAQには、 rsyncの後にrsnapshotをトリガーする派手な解決策 がありますが、それはやり過ぎかもしれません。通常のcronジョブからrsnapshotを実行するだけでも同様に機能します。

代替ソリューションは rdiff-backup ですが、これは各スナップショットのNiceディレクトリビューを表示せず、コマンドを実行してファイルを復元する必要があり、高速復元が複雑になる場合があります。

9
Egil

別のオプションは、リバースsshトンネルを使用してから、受信側から「リモート」プルすることです。

#!/bin/bash -x
IVAL=${1:-hourly}
ssh -vNR 1998:localhost:22 example.com &
ssh example.com "rsnapshot -c pull-from-sender-rsnapshot.conf ${IVAL}"

pull-from-sender-rsnapshot.confには次のような行が含まれる場合があります。

backup localhost:1998/etc/  desktop-1

これは、送信側のcronによって呼び出され、リモートrsnapshotをローカルでトリガーできます。

3
erjoalgo