rsyncとsshでバックアップする
リモートサーバーのデータを
ローカルのバックアップサーバにバックアップ
するという作業になります。
※当記事によって行ったバックアップリストアによる生じた損害
は保障できません。リストアは一度テストサーバーで
リストアテストを行ってください。リストアテストで
正常にリストアできたか確認するまでがバックアップです。
【ローカルバックアップサーバー】
まずリモートサーバーはSSHの設定ファイルをみて
パスワードでrootログイン出来るように設定しておいてください。
(※SCPでローカルサーバーから公開鍵を受け取る為)
【公開鍵と秘密鍵の作成】
[bash][root@hacchoubori_labo ~]# cd[/bash] [bash][root@hacchoubori_labo ~]# pwd/root[/bash] [bash] [root@hacchoubori_labo ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):【空Enter】
Created directory ‘/root/.ssh’.
Enter passphrase (empty for no passphrase):【空Enter】
Enter same passphrase again:【空Enter】
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
db:48:7e:43:82:38:22:a8 root@hacchoubori_labo.server
The key’s randomart image is:
[/bash] [bash] [root@hacchoubori_labo ~]# chmod 400 /root/.ssh/id_rsa
[/bash]
【SCPで公開鍵をリモートに渡す】
[bash] [root@hacchoubori_labo ~]# scp -P xxx22 .ssh/id_rsa.pub hogeuser@remote.net:/home/hogeuser/
The authenticity of host ‘[remote.net]:xxx22 ([153.xxx.yyy.39]:xxx22)’ can’t be established.
RSA key fingerprint is a6:aa:bb:ca:df:3e:91:07:ef.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘[remote.net]:xxx22 ([153.xxx.yyy.39]:xxx22’ (RSA) to the list of known hosts.
hogeuser@remote.net’s password:【hogeuserパスワード入力】
id_rsa.pub 100% 410 0.4KB/s 00:00
[/bash]
【リモートバックアップクライアント(データを抜かれる側)】
公開鍵が転送されているか確認します。
[bash] [root@remote hogeuser]# lsMaildir id_rsa.pub public_html
[/bash]
1 2 3 |
ばっちりです☆ 公開鍵を適切なパーミッションを設定して 公開鍵認証時に読み込む指定のディレクトリに設置します。 |
[/bash] [bash] [root@remote.net hogeuser]# mkdir /root/.ssh
[/bash] [bash] [root@remote.net hogeuser]# chmod 700 /root/.ssh
[/bash]
1 |
リネームして設置するやりかたはたくさんありますが 今回はcatコマンドで行いました。 |
[/bash] [bash] [root@remote.net hogeuser]# chmod 600 /root/.ssh/authorized_keys
[/bash] [bash] [root@remote.net hogeuser]# vi /etc/ssh/sshd_config
PermitRootLogin without-password
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no
UsePAM yes(sudoグループ以外のユーザーのログインを拒否)
[/bash]
※私の場合ssh設定ファイルの最終行にchroot設定をしている場合が多い
以下の設定をしていると、rootでログインした時に
存在しない/home/rootでログインしようとしてしまうので注意。
[bash] Match Group *,!wheel
ChrootDirectory /home/%u/./
↓変更(無効化する)
#Match Group *,!wheel
#ChrootDirectory /home/%u/./
[/bash]
[bash] [root@remote.net hogeuser]# service sshd restart
[/bash]
【ローカルバックアップサーバー(引っこ抜く側)】
通常のSSH公開鍵認証で接続できるかチェックします。
[bash] [root@hacchoubori_labo ~]# ssh -p xxx22 -i /root/.ssh/id_rsa root@153.xxx.yyy.39Last login: Sun Nov 16 22:39:12 2014 from p21155433xxx5-ipbf6109marunouchi.tokyo.ocn.ne.jp
SAKURA Internet [Virtual Private Server SERVICE] [/bash]
繋がった☆
ネットワーク系は設定したものがうまく繋がると
嬉しいですよねー!
バックアップフォルダを作る
[bash] # mkdir -p /home/backup/sakuraVPS/[/bash]
【バックアップを実行】
[bash] [root@hacchoubori_labo /]# rsync -avuz –delete -e “ssh -p xxx22 -i .ssh/id_rsa” root@153.xxx.yyy.39:/home /home/backup/sakuraVPS/[/bash]
【書式】
rsync [オプション] コピー元 コピー先
-v コピー中のファイル名を表示
-z データを圧縮してコピー
-e ssh sshを使う
–delete 同期先で消されたものはコピー先でも消す
–exclude=”ファイルやディレクトリ” 除外する。
-i 公開鍵認証に使用する秘密鍵ファイルを指定
[/bash]
【リストア方法】
コピー元とコピー先を入れ替える。
[bash] [root@hacchoubori_labo /]# rsync -av -e “ssh -p xxx22 -i .ssh/id_rsa” /home/backup/sakuraVPS/ root@153.xxx.yyy.39:/home[/bash]