Rsyncを使って、データコピーや差分同期する

特にサーバー間でデータを移動する場合、クラウドなら、AWS-S3がいいかもしれませんが、sshポートを利用するだけで、差分同期もできるrsyncがいいと思う。

鍵を作成する。※パスフレーズを入れると、接続時にパスフレーズの入力が必要になるようです。

$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/ubuntu/.ssh/id_rsa):
Created directory '/home/ubuntu/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/ubuntu/.ssh/id_rsa
Your public key has been saved in /home/ubuntu/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:IkynyG1mUiCL**********************/9******** tatsuo@vultr.guest
The key's randomart image is:
+---[RSA 3072]----+
|=+. .. |
・・・・・
| o.o. |
+----[SHA256]-----+
.ssh/にid_rsa(秘密鍵)と、id_rsa.pub(公開鍵)の二つのファイルが作成される。
公開鍵をバックアップPCやServer(~/.ssh/authorized_keysに追記)にコピーします。

(オプション)
root でログインするには、以下の作業をバックアップする側にしないといけない。
1. /etc/ssh/sshd_config
 PermitRootLogin yes      <-- root ログインを許可する
 PasswordAuthentication no   <-- パスワードによるログインを拒否(任意)
2. /etc/init.d/sshd restart

接続確認とファイルやフォルダの同期設定

(接続確認)
$ ssh {アカウント名}@{サーバーIPアドレス}
Ex. $ ssh ubuntu@aws.dokoka.net
(ファイルコピー)
$ rsync -avz --delete -e ssh {ソース} {ディスティネーション}
リモートの記述方法:{ユーザー名}@{サーバーPCのアドレス(ホスト名)}:{ディレクトリ}
Ex.リモート先のdownloadディレクトリをローカルに同期する 
$ rsync -avz --delete -e ssh ubuntu@aws.dokoka.net:~/download/ ./download/

最近のクラウドの鍵を使うときは、””で括る

$ rsync -avz -delete -e "ssh -i keyname.key" ./download/ ubuntu@{ipaddress}:~/download/

注意事項

・root以外だと、パーミッション、ユーザー、グループ情報が保存されない。
・--numeric-ids このコマンドオプションを付けると、GID,UIDで対処するようになる。デフォルトは、ユーザー名、グループ名で運用されている。
・bashではパスの最後に/が付いても付かなくても意味は変わりませんが、rsyncの場合、最後に/が付くかどうかで大きく意味が変わるので注意してください。
タイトルとURLをコピーしました