
特にサーバー間でデータを移動する場合、クラウドなら、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の場合、最後に/が付くかどうかで大きく意味が変わるので注意してください。