私はすでに rsync、scp 転送、tar、7z などに慣れており、それらを使用していますが、どれも私が定期的に行う予定のバックアップを解決しません。
バックアップ元にしたい 100 GB SSD の 80% 使用済みスペースを持つリモート サーバーがあります。サーバーには 10,000 個以上の小さなファイルがあるため、基本的な tarball または何らかの中間圧縮 (rsync -z など) が役立ちます。
自宅にバックアップしたいサーバーがありますが、動的 IP を使用しています。
問題は、rsync -zまたはscp と tar (パイプ経由)リモート サーバーで実行する必要がありますが、そのサーバーは動的 IP 上にあるため、ホーム サーバーを認識できません。
したがって、ホームサーバー上では次のようなコマンドしか実行できません。scp user@remoteserver:/files/to/backup /home/user/backupsしかし、これは圧縮を使用できないため、膨大な数のファイルを転送するのに非常に長い時間がかかります。
もっと速い方法はありますか?
PS tarballのようにファイル権限などを保存する必要はありません
編集: リモート サーバーのスペースが限られているため、そこに tarball を作成してホーム サーバーにプルすることはできません。したがって、リアルタイムにする必要があります。
答え1
rsync
バックアップターゲットから を開始できないのはなぜですか? にはrsync
これを妨げる固有の制限はありません。
rsync -avz [email protected]:/data /backupdir
バックアップターゲット (ホームサーバー) では、まさにそれが実行されるはずです。
答え2
オプションはたくさんありますが、最も簡単なのは、SSH などに -C コマンドを追加して、リンクの圧縮を有効にすることです。
より洗練された (そしてより高速な、ただし小さなファイルが多く、待ち時間も大きい) 解決策は、scp を使わず、パイプを使ってデータをオンザフライで圧縮することです。tar -cz /path/to/backup | SSH user@remote "cd /path; tar -xz" のようなコマンドは、gzip 圧縮を使用してファイルを圧縮および解凍します。もちろん、ssh の後に別のコマンドを使用することを妨げるものは何もありません。たとえば、圧縮されたファイルを保存したいだけであれば、代わりに "cat > /path/to/file.tar.gz" を使用できます。
ここでなぜ動的 IP について話しているのかはわかりません。これが問題になる場合は、動的 DNS を使用するか、静的 IP 上のサーバーで VPN を設定するか、静的 IP からプッシュするのではなく動的 IP からプルを開始することができます。