とあるUbuntu Serverを個人的に運用中なのですが、このUbuntu Serverをまるごとバックアップする方法をメモ程度に書いていきます。
通常手順
みなさんがおそらく通常ubuntuをまるごとバックアップする際に使用しているコマンドはddコマンドだと思います。
dd if=/dev/sdb of=/tmp/image
この場合、外付けHDDなどを接続して容量を確保した上で実行しているはずです。
しかし、私の環境の場合このような形で準備することができませんでした。
sshで転送する手順
調べていくと、ofで指定する先をsshで接続してリモート先にする方法を記載している方を見つけました。それが以下の形です。
dd if=/dev/sdb | ssh <username>@<ip address> dd of=/tmp/image
これがなぜ実現できるのか、このddコマンドの仕組みは
- ddコマンドはofを省略すると標準出力に結果を出す。
- それをsshにパイプで渡す。
- sshは、remote hostのあとに続けてコマンドを入力すると、remotehost先で個のコマンドを実行する事が可能。
- ddのifを省略すると、標準入力から入力されたものを対象として動作する。
これらの結果からローカルホスト上のddコマンドの出力が、リモートホストのddコマンドの入力となった。
リストアについて
リストアは以下のコマンドでできました。
ssh <username>@<ip address> dd if=/tmp/image | sudo dd of=/dev/sdb
コメント