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

CONTACT

 

お問い合わせ

Webサイト製作、デザイン、WordPressなどに関するご相談、ご依頼などお待ちしております。

Information

エムティ・デザインはフリーランス(個人事業主)として主にWeb制作を行っています。
Webサイトのコンセプトワーク、デザイン、文章作成・修正から実際のサイト構築、写真の撮影やサーバの構築・管理に至るまで全てをワンストップでご提案できることが一つの大きな特徴です。

Contact Information

本部・制作室 / 長崎県大村市(普段はこちらに: 個人宅のため住所非公開)
福岡 / 〒810-0001 福岡県福岡市中央区天神4丁目6-28 天神ファーストビル7F
東京 / 〒104-0061 東京都中央区銀座1-22-11 銀座大竹ビジデンス2F (期間限定)

Phone 050-5830-2822 (旧 050-5857-5623)

営業時間 月~金 10:00~17:00 / 休業日 土日、祝祭日(これ以外の休業日は随時お知らせ)

オンラインミーティング対応 : Discord / Zoom / Skype / Google Meetなど

Support Area

日本全国対応可能
対面のミーティングが可能な地域、リモートミーティングのみで対応の地域などあります。
2024〜2025年、特に力を入れている地域:
福岡県大牟田市、みやき市、筑後市、大川市、柳川市、久留米市
佐賀県佐賀市、鳥栖市、武雄市、嬉野市など佐賀県全域

NEWS

Copyright (C) MT-Design , All rights reserved.