6.9 KiB
title | author | date | wordtwit_post_info | categories | ||||
---|---|---|---|---|---|---|---|---|
iMacと玄箱でバックアップをとりたい! | kazu634 | 2008-08-09 |
|
|
現状ではiMacからSamba経由で玄箱にアクセスしている状態です。しかしこれだと全部手動でやらなければいけない。これだと面倒なので、自動でバックアップを行うようにしてみたいと思う。
とりあえず自分の知っている知識
- ネットワーク越しのバックアップにはrsyncというのがある…らしい
- Unix / Linuxで自動的に処理をさせるcronという仕組みがある…らしい
- cronはシェルスクリプトを登録する仕組みらしい
これぐらいの知識で、何とか自動的にバックアップをとるようにしていきたい。これが今日の課題。
rsync
公式ページは「rsync」。Leopardにはすでにあるので、玄箱のDebianに導入する。
# su # apt-get install rsync
でrsyncを導入する。rsyncでネットワーク越しにファイルをコピーする場合、どちら側にもrsyncが存在しなければならないらしい。
rsyncの使い方は「 Command Technica:はじめてrsyncを使う方が知っておきたい6つのルール (1/2) – ITmedia エンタープライズ」を参照するといい。ネットワーク越しにコピーする場合、「ユーザ名@ホスト名:ディレクトリ」という形式で指定すればいい。たとえば
# rsync -avz --delete -e ssh ~/Documents/howm backup@kurobox:/home/backup
でもこれだと、sshでkuroboxサーバ上のbackupユーザのパスワードを入力するように求められてしまう。これだと自動化できないので、パスワード認証無しで通るようにする。
sshでの認証
「@IT:sshでパスワードなしにログインするには」を参考にすればいい。私の場合、玄箱は常時電源ONでiMacは付けたり消えたりしている。だから、玄箱の側でiMacの状態を確認しながらrsyncを起動するようにした。だから、「@IT:sshでパスワードなしにログインするには」のsshサーバがiMac側での作業になる。リモートが玄箱。
ここで大事なのがパスフレーズの入力の時に空白にすること*1。これでよくなる。
基本的な手順はまずiMac側
# ssh-keygen -t rsa ←RSA暗号方式の鍵を作成 Generating public/private rsa key pair. Enter file in which to save the key (/home/nori/.ssh/id_rsa): ←[Enter]キー Enter passphrase (empty for no passphrase): ←[Enter]キー Enter same passphrase again: ←[Enter]キー Your identification has been saved in /home/nori/.ssh/id_rsa. Your public key has been saved in /home/[任意のユーザ名]/.ssh/id_rsa.pub. The key fingerprint is: # cd ~/.ssh # cat id_rsa.pub >> $HOME/.ssh/authorized_keys # chmod 600 $HOME/.ssh/authorized_keys
そして~/.sshにあるid_rsaを玄箱の/home/backup/.sshにコピーして、backupユーザにsuする。玄箱上では
# eval `ssh-agent` Agent pid 1084 # ssh-add Identity added: /home/backup/.ssh/id_rsa (/home/backup/.ssh/id_rsa)
この手順でよくなる。
cronに登録するよ
とりあえずシェルを作る。pingでiMacが応答すればrsyncを実行する。「> /dev/null 2>&1」は標準出力とエラー出力を表示させないようにするおまじない。
if ping -qc 1 myimac > /dev/null 2>&1 then rsync -avz --delete -e ssh simoom634@myimac:/Users/simoom634/Documents/howm /home/backup > /dev/null 2>&1 rsync -avz --delete -e ssh simoom634@myimac:/Users/simoom634/Documents/hatena /home/backup > /dev/null 2>&1 fi
これをcronに登録する。参考になるのは「404 – エラー: 404」。
# su # crontab -u backup -e [編集]
ここでの編集内容は
40 * * * * /usr/bin/backup.sh
この設定だと、毎時間40分になったら/usr/bin/backup.shを実行することになる。
できた!
こんな過程を通して、自動でバックアップする環境ができました。これで楽ちんができる。