Mac OS Xでサーバのバックアップを自動化してみる

サーバのバックアップというのはとても重要です。というのは先日の某Yahoo!Japan系(というかSB系)サーバ会社の大規模障害で分かった方も多いかと思います。
もちろん、バックアップの環境はうちも持っているのですが、Linuxサーバなので何となく使いづらい・・・
ので、いっそのこと、ファイルサーバとして使っているMacBookProにサーバのバックアップも取って、そのままNASにもミラーしてしまおうと思います。
NASへのミラーは大したことないので、今回はサーバからのバックアップに注目してみます。

By: bet hec han geu wan t2c
さて、どういう風にバックアップを取ろうかな、と考えたのですが、ファイル転送プロトコルとしては比較的一般的なFTPをとりあえず使ってみようかと思います。
今回、バックアップという用途なのでディレクトリ毎のバックアップはもちろん、配下のディレクトリ内を再帰的にバックアップするケースも考慮し、「ncftp」を使ってみたいと思います。
ちなみに「ncftp」は下記からダウンロード出来ます。
NcFTP Software: Download
このページの真ん中辺りに「NcFTP Client 3.2.5 for Mac OS X 10.4 to 10.6 (Intel 32-bit)」というリンクがあると思いますので、こちらをクリックするとdmgファイルがダウンロード出来ます。一般的なインストーラ形式になっていますので、そのままインストールして下さい。
次にシェルスクリプトを組みます。
シェルスクリプトを保存する場所はユーザフォルダ内がいいでしょう。
私は
/Users/ユーザ名/scripts/
というフォルダを作って保存しています。
シェルスクリプトのファイル名は何でもいいですが、分かりやすく”backup.sh”程度がいいかもしれません。
(ここでは”/Users/ユーザ名/scripts/backup.sh”として作成します)
シェルスクリプト本体はだいたい下記を参考にして見て下さい。
[bash]
#!/bin/sh
#
BACKUPDIR=/Users/ユーザ名/backups/
cd $BACKUPDIR
/usr/bin/ncftpget -u サーバ側のバックアップ先ユーザ名 -p ‘サーバのバックアップ先ユーザパスワード’ -E -R ftp://サーバのIPアドレス/バックアップ先フォルダ名
[/bash]
私はスクリプトを書く前にターミナル上で必ず試験をしています。
スクリプトを書いたら実行権限を与えておきます。
[bash]
# chmod 700 /Users/ユーザ名/scripts/backup.sh
[/bash]
実行権限を与えてたら、cronに登録します。
コマンドラインから
[bash]
# crontab -e
[/bash]
と入力するとviが起動します。
バックアップを”20:30″から始めたい場合は下記のように設定します。
[bash]
30 20 * * * /Users/ユーザ名/scripts/backup.sh
[/bash]
※cronの設定は詳しいサイトがありますのでそちらをご覧下さい。
これで指定した時間に自動的にバックアップを取得します。
複数サーバのバックアップを取る場合はスクリプトファイルに”ncftpget”コマンドを記述していけばOKです。
このやり方はLinuxサーバでもほぼ同じですので、バックアップをどうしようか悩んでいる方は是非お試し下さい。
[tmkm-amazon]4904807049[/tmkm-amazon]

Share this post