デスクトップやサーバーにLinuxをご利用の場合、データのバックアップに最適な方法がわからない、あるいは独自のバックアップスクリプトを作成したいという方もいらっしゃるかもしれません。しかし、ネットワーク経由でもこのプロセスを非常に簡単に実行できるプラットフォームをお選びいただけました。いくつかのツールを使えば、ソースからターゲットへのデータのバックアップを瞬時に完了できます。
これを実現するために必要なツールはrsyncとsshです。どちらもLinuxマシンに既にインストールされている可能性が高いです。ここで紹介する主な方法は、LinuxからLinuxへのバックアップにのみ適用できます。Sambaを追加することで、rsyncを使用してLinuxからWindowsにバックアップする方法もあります。この方法では、Windows共有フォルダをLinuxマシンにマウントし、rysncツールを使用してバックアップを実行する必要があります。そのため、まずrysncの基本について説明します。これにより、LinuxマシンにマウントされたWindows共有フォルダへのバックアップと同様に、ディレクトリ間のバックアップが可能になります。
参照:データのバックアップ: 賢い人のためのガイド
インストール
これをelementary OS FreyaクライアントとUbuntu 16.04サーバーで実演します。どちらのプラットフォームにもrsyncは既にインストールされています。sshサービスはおそらく見つからないでしょう。インストールするには、ターミナルウィンドウを開き(クライアントとサーバーの両方で行います)、以下のコマンドを実行してください。
sudo apt-get install -y openssh-server
インストールが完了すると、両方のマシンで使用できるようになります。
基本
rysnc のコマンド構造は次のようになります。
rsync オプション ソース 宛先
例えば、~/TEST を/data/フォルダにバックアップしたいとします。これを行うには、次のコマンドを実行します。
rsync -av ~/TEST /data/
上記に表示されるオプションは次のとおりです。
- a – 子ディレクトリを再帰的に処理する
- v – 詳細な出力を表示
他にもたくさんのオプションがありますが、rsync を起動して実行するために必要なのは上記の2つです。オプションの完全なリストを確認するには、man rsync コマンドを実行してください。
/dataディレクトリがマウントされた Windows 共有 ( sudo mount -t cifs -o username:domainusername //SERVER_IP/ShareFolder /data/ などのコマンドでマウント) である場合、rsync を使用してバックアップしたすべての内容が Windows 共有ディレクトリ上にあります。
sshでバックアップする
さて、ローカルやWindows共有フォルダへのバックアップではなく、Linuxサーバーをバックアップ先として利用したいとします。SSHを使えば、rsyncを使ってファイルやディレクトリをソースからバックアップ先へ、しかもネットワーク経由でバックアップできます。
例えば、IPアドレスが192.168.1.228のサーバー上の/dataフォルダを/backupフォルダにバックアップするとします。バックアップ先の/backupフォルダへの書き込み権限を持つユーザー(rootや、この目的のために作成した特別なユーザーなど)で実行する必要があります。このコマンドの構造は以下のようになります。
rsync -av -e ssh /data [email protected]:/backup/
上記の例では、「backup」というユーザーのパスワードを入力するよう求められます。認証情報が承認されるとすぐに、データが転送されます。
少しジッパーを閉める
便利な方法として、フォルダをzip圧縮してrsyncでバックアップする方法があります。例えば、/data/MONDAYフォルダをzip圧縮してリモートLinuxサーバーにバックアップしたいとします。これを行うには、zipコマンドを次のように使用します。
zip /data/MONDAY.zip /data/MONDAY && rsync -av -e ssh /data/MONDAY.zip [email protected]:/backup/
おめでとう
これで完了です。ローカル、マウントされた共有ディレクトリ、または ssh を使用したネットワーク経由でデータをバックアップする手段として rsync を利用できるようになりました。
rsync でできることはまだまだたくさんあります。次回このトピックを扱う際には、cronを使って同じバックアップを自動化する方法を紹介します。