トップページへ

 セットアップ
Debian化
カーネル再構築
Debian化仕上げ
HDDの初期化
フローチャート

 サーバ構築
ルータの設定
無料ドメイン収得
Webサーバ
メールサーバ
FTPサーバ
ファイルサーバ
プリンタサーバ
DNSサーバ
データベースサーバ

 運 用
基本的なコマンド
テキストエディタ
シェルスクリプト
運用に必要な物
ファイアウォール
ログの管理
バックアップ
データ復旧
VMware

 監 視
Webアクセス解析
システム監視
ログ解析
不正アクセス監視

 その他
リンク

sponsored link

【 更新履歴 】


2009年7月25日
 サイトデザインを一新

2009年3月31日
 Debian化仕上のページを更新

2008年09月15日
 新サイト開設



データのバックアップ:rsync



 玄箱をsambaサーバにしている場合、デジカメの写真や動画ファイルがたまりにたまって数十ギガになってしまうでしょう。 大事なデータをバックアップするのにDVDに焼いていたら何十枚にもなるし、第一面倒です。 大容量のデータをバックアップするにはやはり大容量のHDDがベストでしょう。ここのページでは私が行っているバックアップの方法を紹介します。
 また、バックアップする容量がそんなに大きくない場合は2G程度のUSBメモリを差し込んでバックアップを取っていってもいいでしょう。

 私は大容量のHDDとして、HitachiのSATA-500GBを購入して3.5インチHDDケースに入れてUSBで玄箱HGに接続しています。
 しかし、ここで1つ問題が生じてしまいました。なんとUSBを接続しても製品情報は認識するがマウントできるデバイスとして認識をしてくれなかったのです。 HDDだけでなくUSBメモリも同様に接続してもマウント可能なデバイスとしては認識してくれませんでした。
 玄箱ノーマルに接続すればマウントは可能なのに玄箱HGだと駄目なのでもしかしたらカーネルを2.6にした時点で HGは何かしらの設定が変わってしまったのかと思い、カーネルの再構築の設定を確認してみました。 すると、USBストレージはSCSIとして玄箱に認識されているのですが、カーネルコンフィグレーションの時点で 設定が無効になっていたので設定を有効にしたらうまく認識してくれました。

 windowsでフォーマットしたストレージを認識するためにはカーネルの再構築の際に 「Japanese charset(Shift-JIS,EUC-JP)」を有効にしておく必要がありました。 また、マウントする時のオプションも指定しなければいけないようです。
 例:
#mount -t vfat -o iocharset=euc-jp,codepage=932 /dev/sda1 /mnt/usbhdd/


※外付けUSB記録媒体が認識しない人だけカーネルの再構築を行ってください

USBストレージを認識させる(認識できない人だけ)

カーネルの再構築の説明(玄箱HG setupページのコマンドkernelの再構築を参照)
# make menuconfig コマンドにて
以下にチェックが入っているか確認しておく(USBメモリ,USB-HDDを使えるようにするため)

------------カーネルコンフィグ-------------
 Device Drivers ---> カテゴリ移動
  SCSI device support ---> カテゴリ移動
   <M> SCSI device support チェックを入れる
   [ * ] legacy /proc/scsi/ support チェックを入れる
   <M> SCSI disk support ←重要、チェックを入れる

File systems ---> カテゴリ移動
 Native Language Support カテゴリ移動
  <*>Japanese charsets(Shift-JIS,EUC-JP) チェックを入れる
------------カーネルコンフィグ-------------

チェックを入れたら玄箱HG setupページの項目にしたがって再構築を行います。




# dmesgコマンドの結果(再構築を行う前は「sda」等の赤字の文章が出てこなかった)

# dmesg
        (略)
 usb-storage: waiting for device to settle before scanning
  Vendor: Kingston Model: DataTraveler 2.0 Rev: 1.00
  Type: Direct-Access ANSI SCSI revision: 02
 SCSI device sda: 1994752 512-byte hdwr sectors (1021 MB)
 sda: Write Protect is off
 sda: Mode Sense: 23 00 00 00
 sda: assuming drive cache: write through
 SCSI device sda: 1994752 512-byte hdwr sectors (1021 MB)
 sda: Write Protect is off
 sda: Mode Sense: 23 00 00 00
 sda: assuming drive cache: write through
  sda: sda1
 sd 0:0:0:0: Attached scsi removable disk sda
 usb-storage: device scan complete
        (略)

上記は1GBのUSBメモリですがsdaとしてマウント可能なデバイスが認識されています。USB-HDDでも同じ事です。


無事にUSB記録媒体が認識できたら次へ進んでください

コマンド:記録媒体のフォーマット

USBを挿してマウント可能なデバイスとして認識されたらフォーマットを行います。私はext3形式でフォーマットをかけました。
# dmsgコマンドで何の名前でデバイスが認識されたかを確認します。例:sda,sdb,sdcなど

# dmsg

認識されている名前でフォーマットコマンドを入力します

# mkfs.ext3 /dev/sda

コマンド:記録媒体のマウント

ext3でフォーマットされたストレージを下記のコマンドでマウントして実際にデータの書き込みが出来る状態にします。

# mkdir /mnt/usbhdd

恒例に従って「/mnt/」下に「usbhdd」ディレクトリを作成しました。この「usbhdd」ディレクトリにUSBストレージをマウントさせます。

# mount /dev/sda /mnt/usbhdd

マウントコマンド。ファイルシステムは自動で認識されます

# mount -t vfat -o iocharset=euc-jp,codepage=932 /dev/sda1 /mnt/usbhdd/

他にも、windowsフォーマットならこのようなオプションでのコマンドが必要になるでしょう


コマンド:必要パッケージのインストール

rsync:このパッケージは差分バックアップが出来るのが特徴。最初にフルバックアップを取った後は 変更されたファイルだけをバックアップしてくれるので簡単にデータの同期がとれます

# apt-get install rsync

コマンド:バックアップの実行

# mkdir /mnt/usbhdd/samba

実際に「/mnt/usbhdd/samba」ディレクトリを作成してここにバックアップさせます。

# rsync -av /mnt/samba/ /mnt/usbhdd/samba

データの入っている「/mnt/samba/」ディレクトリを丸ごとバックアップを開始します。

※ここで大事なのはバックアップデータのあるディレクトリの表記ですが、 「/mnt/samba/」の様にディレクトリの最後に「/」をつけない場合、まず「samba」ディレクトリが作成されてから 中のディレクトリやデータがコピーされていきます。つまりバックアップ先は「/mnt/usbhdd/samba/samba/データ」となってしまいます。



最初のバックアップは時間がかかりますが2回目以降は変更のあったデータだけコピーするので 時間はかからないはずです。ちなみに、私は150G近いデータをバックアップするのに10時間くらいかかりました。



# rsync -av --delete /mnt/samba/ /mnt/usbhdd/samba

「--delete」オプションを追加してコマンド入力すれば、元データを削除した場合、バックアップ先のデータも同期して削除してくれます。


Cronという指定した時間に指定したコマンドを自動で実行してくれるプログラムを使って自動バックアップをします。

Cronに登録してバックアップ自動化

# vi /root/rsync.sh

ファイルを新規作成して下記の文章を入力する
内容は1.外付け記録媒体をマウントする。2.rsyncコマンドでバックアップを取る。3.マウントを解除する

 #!/bin/sh
 PATH=/bin:/usr/bin:/sbin:/usr/sbin

 mount /dev/sda /mnt/usbhdd 認識されるデバイス名に注意。USBを差し込む順番によって違ってきます (/dev/sda,/dev/sdb・・・)

 rsync -av --delete /mnt/samba/ /mnt/usbhdd/samba

 umount /mnt/usbhdd

シェルスクリプトに実行権限を与えます。

# chmod a+x /root/rsync.sh

Cronに登録して夜中の3時にバックアップを開始する

# vi /etc/crontab

 0 3 * * * root /root/rsync.sh ←この行を追加する

 これで自動バックアップが出来ますが、常に外付記録媒体の電源を入れておく必要は無く、バックアップを取りたい日だけ電源を入れておき、夜中の 3時にバックアップが開始されて朝になったら外付記録媒体の電源を切れば電気代がもったいなくありません。
 もしも外付記録媒体の電源が入っていない状態で夜中の3時になってもマウント出来ないところでコマンドは終了してしまいます。
 しかし、この方法で注意することは、外付記録媒体の電源を入れてマウントされる時に認識されるデバイス名が違っているとそこでもコマンドは終了してしまいます。