サーバーのダウンタイムの問題が発生したときにプライマリサーバーの操作を引き継ぐようにバックアップサーバーを設定することは、ほとんどのLinuxユーザーとすべてのLinux管理者が習得する必要のあるスキルセットです。 「もしも」について心配する必要がなくなります。 」シナリオ。
したがって、一部の技術またはサーバー違反の試みによってプライマリサーバーが一時的または永続的にダウンする可能性がある最悪のシナリオでは、プライマリ/メインのツインサーバー環境として機能するように構成されたバックアップサーバーの存在に常に依存できます。サーバー。
[あなたも好きかもしれません:Linuxで2つのWebサーバーを自動的に同期する方法]
バックアップサーバーは、重要なシステムデータ構成とユーザーファイルを失わないようにします。
LinuxでのRsyncのインストール
2台のサーバーを同期させることの重要性を理解したところで、この記事の目的を達成する方法についてのウォークスルーの時間です。 2つのアクティブで機能しているサーバーとそれぞれのIPアドレスまたはドメイン名が必要になります。
- メイン/プライマリサーバーのIPアドレス: 3.135.207.xx 。
- バックアップ/セカンダリサーバーのIPアドレス: 18.118.208.xx
これら2つのサーバーを自動的に正常に同期するには、 rsyncを使用する必要があります。 効用。 Linuxサーバーのディストリビューションに関係なく、使用しているのは rsyncをインストールすることです。 次のLinuxインストールコマンドのいずれかから。
インストールは、プライマリ/メインサーバーとセカンダリ/バックアップサーバーの両方で行う必要があります。
$ sudo apt-get install rsync [On Debian, Ubuntu and Mint] $ sudo yum install rsync [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux] $ sudo emerge -a net-mis/rsync [On Gentoo Linux] $ sudo pacman -S rsync [On Arch Linux] $ sudo zypper install rsync [On OpenSUSE]
Rsyncを使用したLinuxでのターゲットディレクトリファイルの同期
たとえば、メイン/プライマリサーバー( 3.135.207.xx )を想定します。 )ディレクトリ LinuxShellTips バックアップ/セカンダリサーバー( 18.118.208.xx )との同期が必要な次の強調表示されたファイル 。
$ ls

バックアップ/セカンダリサーバー( 18.118.208.xx )にアクセスする必要があります )、メイン/プライマリサーバー( 3.135.207.xx )からのファイルをホストする同様のディレクトリを作成します )rsyncプロセスが開始されたとき。
$ mkdir LinuxShellTips_Backup $ cd LinuxShellTips_Backup
LinuxでRsyncを使用してディレクトリを同期する
rsync以降 sshの使用をサポートします プロトコル、サーバーアクセスセキュリティが保証されています。 rsyncの方法を手動でテストするには これら2つのサーバー間で実行する場合は、次のコマンドを実行します。
このコマンドは、バックアップ/セカンダリサーバー( 18.118.208.xx )から実行しています。 。
$ sudo rsync -avzhe ssh [email protected]:/home/ubuntu/LinuxShellTips/ /home/ubuntu/LinuxShellTips_Backup

お気づきのとおり、メイン/プライマリサーバー( 3.135.207.xx )からの3つのファイル )がバックアップ/セカンダリサーバー( 18.118.208.xx )に正常にコピーされました 。
LinuxでRsyncを使用してディレクトリを自動的に同期する
rsyncを完全に自動化するには、次の2つの手順を実行する必要があります。
ステップ1:SSHパスワードレスログインを構成する
rsyncをテストするために上記のコマンドを実行している間 、メイン/プライマリサーバーのアクセスパスワードの入力を求められているはずです。サーバーの同期中にパスワード要求プロンプトを取り除くには、公開鍵と秘密鍵を生成する必要があります。
バックアップ/セカンダリサーバーで次のコマンドを使用します。
$ sudo ssh-keygen -t rsa -b 2048

[ Enterを押します ]フィールドを空白のままにして、生成された秘密鍵と公開鍵をメイン/プライマリサーバーにコピーするためのパスフレーズの入力を求められたら。
$ sudo ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]

これで、以前に説明した rsyncを快適に実行できます。 メイン/プライマリサーバーのサーバーアクセスパスワードを指定せずにコマンドを実行します。
$ sudo rsync -avzhe ssh [email protected]:/home/ubuntu/LinuxShellTips/ /home/ubuntu/LinuxShellTips_Backup
ステップ2:Rsyncを自動化するようにCronジョブを構成する
SSH以降 これら2つのサーバー間でパスワードなしのログインが可能になりました。rsyncプロセスを自動化する最後のステップは、バックアップ/セカンダリサーバー上のcrontabファイルを編集してcronジョブを作成することです。
$ sudo crontab -e
2つのLinuxサーバーのディレクトリファイルを同期するためのcronジョブスケジュールを作成して、crontabファイルを編集します。
*/5 * * * * sudo rsync -avzhe ssh [email protected]:/home/ubuntu/LinuxShellTips/ /home/ubuntu/LinuxShellTips_Backup
crontabファイルを保存して閉じます。
上記で実装されたcronジョブは、5分ごとにバックアップ/セカンダリサーバーをメイン/プライマリサーバーと自動的に同期します。
2台のサーバーを同期すると、サーバーのダウンタイムの問題とサーバーログエラーに対する完璧なソリューションが作成されます。また、バックアップサーバーがこれらのファイルの完全なコピーをホストするため、ユーザーとシステムのデータファイルが失われることを心配する必要はありません。