LinuxサーバーからMac OS Xへrsyncでバックアップ
Mac OS X Leopard にシステムや取り替えのきかない重要なファイルを別のハードディスクやネットワークボリュームに自動的にバックアップできる Time Machine が標準実装されました。
Time Machineのおかげで、Macのデータは問題が起きてもバックアップ時点に復旧出来る環境が手軽に手に入りました。
ふと、このブログを運営しているレンタルサーバーはバックアップが出来ていない事に思い当たりました。
HDDは標準でRAIDなのですが、バックアップ領域が毎月1GBで1,000円で高い…ので手が出せない。
さいわい更新頻度は低いので、定期的に Mac OS X に Linuxサーバー のファイルをコピーするだけで事が足ります。
そこで…Linuxサーバー から Mac OS X バックアップする環境を整えたいと思います。
なお、サーバーは固定IPアドレスですが、ローカルの Mac OS X は固定IPではないので、Mac OS Xからサーバーにバックアップするファイルを取得する形にします。
これより、その環境構築した際のメモします。
操作:サーバー(Linux)側
一時的にrootでもSSH接続を出来る様にします。
# vi /etc/ssh/sshd_config
PermitRootLogin no ↓ PermitRootLogin yes
操作:Macintosh(OS X)側
パスワードを使用しないでログインするためDSA認証の鍵を作成
$ cd ~/
$ ssh-keygen -t dsa
※出力するファイル名、パスフレーズの入力を求められますが
何も入力せずに全てEnteyキーを押下して下さい。
Generating public/private dsa key pair. Enter file in which to save the key (/Users/makizou/.ssh/id_dsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /Users/makizou/.ssh/id_dsa. Your public key has been saved in /Users/makizou/.ssh/id_dsa.pub. The key fingerprint is: f0:0a:80:e0:73:25:23:e5:02:0e:1d:65:c8:8d:3a:a4 jun@iMac.local The key's randomart image is: +--[ DSA 1024]----+ |++oXo. | |*oB.= | |+*.o . | |E +. o | | . . S | | . . | | . | | | | | +-----------------+
Macintoshからサーバーへ公開鍵をコピー
$ scp .ssh/id_dsa.pub root@192.168.1.100: root@192.168.1.100's password: rsync.pub 100% 604 0.6KB/s 00:00
操作:サーバー(Linux)側
ホームディレクトリ直下に .ssh ディレクトリをパーミッション 700 で作成
# mkdir -m 700 .ssh
Macintoshからコピーしてきた公開鍵を認証用ファイルに登録し、パーミッションを 600 にする。
# mv id_dsa.pub .ssh/authorized_keys2
# chmod 600 .ssh/authorized_keys2
■操作:Macintosh(OS X)側
接続テスト
$ ssh root@192.168.1.100
パスワードが要求されず接続されればテストは成功です
操作:サーバー(Linux)側
「root の ssh ログインでは公開鍵に指定したコマンドライン 実行のみ許す」設定
# vi /etc/ssh/sshd_config
PermitRootLogin yes ↓ #PermitRootLogin yes PermitRootLogin forced-commands-only
実行コマンドを限定した接続のテスト
# vi /root/.ssh/authorized_keys2
先頭に以下を追加
command=”/bin/ls”
操作:Macintosh(OS X)側
接続テスト
$ ssh root@192.168.1.100
指定通り /bin/ls が実行されて、すぐに接続が切断されればテストは成功です
公開鍵に指定すべきコマンドラインを得る
$ rsync -vv -az -e ssh root@192.168.1.100:/root/ /Users/makizou/Sites/192.168.1.100/
opening connection using ssh -l root 192.168.1.100 rsync –server –sender -vvlogDtprz . /root/
protocol version mismatch — is your shell clean?
(see the rsync man page for an explanation)
rsync error: protocol incompatibility (code 2) at /SourceCache/rsync/rsync-37.3/rsync/compat.c(61) [sender=2.6.9]
この opening connection using ssh … の後にある rsync から始まる部分に注目します。
rsync –server –sender -vvlogDtprz . /root/ です。
ここからオプション -vv を取り除いたものを、リモートの /root/.ssh/authorized_keys に指定します。
操作:サーバー(Linux)側
# vi /root/.ssh/authorized_keys2
先頭の以下変更
command="/bin/ls" ↓ command="rsync --server --sender -logDtprz . /root/"
操作:Macintosh(OS X)側
$ rsync -vv -az -e ssh root@192.168.1.100:/root/ /Users/makizou/Sites/192.168.1.100
マックらしくアイコンのダブルクリックで、ターミナルを起動して、シェルスクリプトの実行を始める様にします。
シェルスクリプトを記述したファイルを作成します。
#!/bin/sh
rsync -vv -az -e ssh root@192.168.1.100:/root/ /Users/makizou/Sites/192.168.1.100
このファイルをコマンド拡張子 *.command で保存します。
例:ShellScript.command
同ファイルの情報を開いて、ホストアプリケーションを設定します。
「このアプリケーションで開く:」タグで、「ターミナル.app」を選択します。
同ファイルのパーミッションを設定します。
ターミナルを起動して、ファイルのモードを実行権を与えるように変更します。
$ chmod 755 file名
実行
同ファイルをダブルクリックすると、自動的にターミナルが起動して、シェルスクリプトを実行します
〜・〜・〜・〜・〜・〜・〜・〜・〜・〜
Mac OS X のTime Machineが定期的に差分だけバックアップしてくれるんだけど、たまにエラーになるんだよな…
![]() (1) (0) (0) (1)Total: 2 |





