rsyncを使用して、Ubuntuでデータをリモートバックアップします

要求する##

3つのubuntuサーバーがあります。work_svr1とwork_svr2はパブリックネットワークで実行されている作業サーバー、1つは作業用のwebappを実行しており、2つはバックアップサーバーです。また、個人がブログサーバーとして貸し出しているリモートサーバーもあります。仕事用サーバー1のデータと個人ブログサーバーのデータを毎日定期的に2サーバーにバックアップできることを願っています。

rsyncの概要##

rsyncコマンドは、LAN / WANを介して複数のホスト間でファイルをすばやく同期できるリモートデータ同期ツールです。 rsyncは、いわゆる「rsyncアルゴリズム」を使用して、ローカルホストとリモートホスト間でファイルを同期します。このアルゴリズムは、ファイル全体を毎回送信するのではなく、2つのファイルの異なる部分のみを転送するため、速度は非常に高速です。 Rsyncは非常に強力なツールであり、そのコマンドにも多くの機能とオプションがあります。そのうちの3つを使用しました。オプションの使用に関する詳細な手順は、manコマンドを使用して表示できます。

使用法###

# ローカルファイルをコピーします。 SRCパス情報とDESパス情報のどちらにも単一のコロンが含まれていない場合":"この作業モードは、セパレーターを使用するとアクティブになります。
rsync [OPTION]... SRC DEST
# リモートシェルプログラムを使用する(rsh、sshなど)ローカルマシンの内容のリモートマシンへのコピーを実現するため。 DSTパスアドレスに単一のコロンが含まれている場合":"このモードは、区切り文字のときにアクティブになります。
rsync [OPTION]... SRC [USER@]host:DEST
# リモートシェルプログラムを使用する(rsh、sshなど)リモートマシンの内容をローカルマシンにコピーするため。 SRCアドレスパスに単一のコロンが含まれている場合":"このモードは、区切り文字のときにアクティブになります。
rsync [OPTION]...[USER@]HOST:SRC DEST

オプション###

- a,--アーカイブアーカイブモード。ファイルを再帰的に転送し、すべてのファイル属性を保持することを意味します。
- z,--compressは、送信中にバックアップされたファイルを圧縮します。
- Pはと同等です--部分的。その後の再転送を高速化するために、何らかの理由で完全に転送されていないファイルを保持します。

SSHパスワードなしのログイン##

SSHパスワードなしの自動ログイン。これにより、スケジュールされた自動リモートバックアップ中にsshログインパスワードを入力する必要がなくなります。
まず、クライアントサーバー Aでユーザー aの公開キーを生成します(パスフレーズを入力する必要はありません)。

a@A:~> ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key(/home/a/.ssh/id_rsa): 
Created directory '/home/a/.ssh'.
Enter passphrase(empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in/home/a/.ssh/id_rsa.
Your public key has been saved in/home/a/.ssh/id_rsa.pub.
The key fingerprint is:
3 e:4f:05:79:3a:9f:96:7c:3b:ad:e9:58:37:bc:37:e4 a@A

次に、SSHを使用してユーザー bとして Bにログインし、 〜/ .sshディレクトリを作成します(このディレクトリがすでに存在している可能性があります)。

a@A:~> ssh b@B mkdir -p .ssh
b@B's password:

最後に、クライアント Aの公開キーを B側の authorized_keysファイルに追加します。

a@A:~> cat .ssh/id_rsa.pub | ssh b@B 'cat >> .ssh/authorized_keys'
b@B's password:

これで、パスワードを入力せずに Bにログインできます。

a@A:~> ssh b@B

私の例##

個人ブログのバックアップ###

# サーバーで作業する_svr2で実行されているブログのリモートバックアップ用のスクリプトプログラム(ブログはhexoに基づいており、強くお勧めします^_^)
rsync -azP [email protected]:/home/user/myblog /home/user/myblogbak > rsync.log

作業サーバーのバックアップ###

# webappコンテンツ
rsync -azP user@work_svr1:/var/www/webapp /home/user/> rsync.log
# 個人用gitプロジェクトのバックアップ
rsync -azP user@work_svr1:/home/user/prj_git /home/user/> rsync.log

最後に、 crontab-eタイミングタスクを設定します。

この記事では、この[rsync](https://link.jianshu.com/?t=http%3A%2F%2Fman.linuxde.net%2Frsync)とこの[ ssh](https://link.jianshu.com/?t=http%3A%2F%2Fwww.linuxproblem.org%2Fart_9.html)の内容を部分的に参照しています。

Recommended Posts

rsyncを使用して、Ubuntuでデータをリモートバックアップします
Ubuntu14.04でEvernoteを使用する方法の概要
ubuntuでiptablesを使用する
Ubuntu14.04でDockerデータボリュームを使用する方法
doxygenを使用して、Ubuntu12.04でAPIドキュメントを生成します
ubuntuの下で崇高なtexを使用する
ubuntuでのmediawikiの使用
virtualboxを使用してubuntuをデプロイします
期待を使用して、ubuntuで画面マルチウィンドウブート操作を実現します
ubuntuでhanlpを使用する方法
XShellを介してUbuntuにリモート接続する
ubuntuでijkplayer-androidをコンパイルする方法
Ubuntuでの大胆なインストール手順
ubuntu16.04でTensorflowをインストールする方法
Ubuntu16.04でSambaサーバーを使用する方法
python3を使用してubuntuに3番目をインストールします
Ubuntuでソフトウェアをインストールする3つの方法
UbuntuでMySQLパスワードを変更する方法
Windowsはubuntuを使用してLinuxサービスを開始します
Linuxでvimエディターをインストールする方法(Ubuntu 18.04)
Prometheusを使用してUbuntu14.04サーバーを監視する方法
UbuntuでTensorFlow使用環境を構成する方法
Ubuntu16.04でNginxのマップモジュールを使用する方法
次のコマンドを使用して、Ubuntuプロジェクターの問題を解決します。
Ubuntu20.04にDockerをインストールして使用する方法
Ubuntu16.04での.debのインストールの失敗に対する解決策
Ubuntuシステムでdpkgコマンドを使用する方法
Ubuntu18.04にCurlをインストールして使用する方法
Ubuntu18.04にComposerをインストールして使用する方法
Ubuntu18.04にWineをインストールして使用する方法
Ubuntu20.04にComposerをインストールして使用する方法
Ubuntu14.04にBaasBoxをインストールして使用する方法
Ubuntuでnode.jsプロジェクトをherokuに公開します
ubuntuでMatlab_Linuxのツールキットを追加する手順
Jenkinsを使用してUbuntuで自動的にビルドする方法
Ubuntu16.04にPostgreSQLをインストールして使用する方法
Ubuntuの下でSVNに新しいプロジェクトを追加します
Ubuntu環境でMySQLデータベースにリモート接続する
ubuntuでのHanlpの使用の概要
Ubuntuでクラスをインポートできないpycharmの解決策
Ubuntu14.04でMysqlリモートアクセスを有効にする方法
Ubuntuでgccコンパイラをより速くインストールする方法
Ubuntu16.04にDockerをインストールして使用する方法
Ubuntuの使用上の注意
ubuntu zip / unzipの使用
DebianおよびUbuntuでDebファイルを再パッケージ化する方法
Ubuntu14.04でMongoDBバックアップを作成して使用する方法
ランチャーを使用して、CentOS7でK8sクラスターを構築します
コマンドラインを使用して、Ubuntuバージョンメソッドを検出します
Cobblerを使用して、CentOS / Ubuntuのバッチ展開を自動化します
UbuntuでのPythonでのGDALのインストールと使用
Ubuntu18.04にMySQLWorkbenchをインストールして使用する方法
Puttyを使用してVirtualBoxにインストールされているubuntuにログインする方法
Cpp web(1)UbuntuでCrowサービスをインストールして使用する
ubuntuの下に2つのバージョンのOpenCVをインストールするにはどうすればよいですか?
Ubuntuのnginxサーバーでhttpsを開く方法