事象の水平線

横を無理やり伸ばしたので、デザインがおかしいけど、気にしない。完璧に時代に取り残されたHTMLをいまさらいじるのがめんどくさい。個人的ブックマーク代わりなメモ書きブログ。

重大な問題が発覚しました。こちらを参照してください→CentOS6.0 自動バックアップ その3
一応話の流れてきに、書き換えずにそのまま残しておきます。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

前回『rsync』の実験をしてみましたが、外付けHDDにバックアップする方法を考えてみました。

まず、外付けHDDのフォーマットをNTFSにしました。
WindowsXPにLinuxのext3やext4が読み込めるソフト『Ext2Fsd』をインストールしてみるも、CentOSを入れていた120GのHDDの/home以下を収めたパーティションが全く見れない。
ext4フォーマットだったと思うけど・・Rawとか表示されててなんだかよくわからない orz
それに毎回アプリを立ち上げないといけないのでちょっと面倒・・・
それに対し、CentOSからNTFSのHDDは特別な操作なしに扱えるので、可搬性のある外付けHDDは深く考えることなくNTFSに決定
まぁ、、互換性があるといってもFATは無いよね・・・
ということで、前回外付けとして使おうと思っていた250GBのHDDをCentOSのメインドライブにして、今まで散々実験してきた120GBのシーゲートを外付けにするため、HDDケースに収めXPノートにUSBでつないでNTFSでフォーマット。
名前を『NTFS120GB』にしました。
HDDを入れ替えたのは単になんとなく・・・250GBのほうには一からインストールをやり直しましたが、このメモ書きブログのおかげでかなり楽でした。

で、サーバーのハードウェア構成はそうそう変わるものではないけれど、物理的なトグルスイッチで更にもう一台のPATAのHDDを、起動の度にOn/Off出来るようにしたので、それによって外付けHDDのデバイスラベル(?『/dev/sda』みたいなやつ)が変わってしまう。
これだと、rsyncのバックアップ先を決め打ちしてスクリプトをかけないので、HDDにつけた名前(ファイルシステムのラベル)から何とかならないかと

[root@NAS ~]# find / -name NTFS120GB
としてみると

/dev/disk/by-label/NTFS120GB
と帰ってきた。
これは使える!とおもい。

#!/bin/sh
declare backupHDD=`find / -name NTFS120GB`
mount $backupHDD /media

というスクリプトを書いて実行してみるとしっかりとマウントしている。ぉぉ、、テキトーやってみるもんだな・・・

しかも、玄人志向のGW3.5AA-SUP/MBがマウントすると電源入るし、アンマウントして暫く(約10分)すると勝手に電源切れますよ。すばらしい。
電源連動のために、何か方法が無いかとHPを下調べしていたのに、その必要すらなく実現してしまった。
ちなみに、下調べしたHPは『daily dayflower』さんの『電源連動 USB HDD の切断・再接続を CLI で
ちゃんと読んでないから何をしてるのかよく解らないけど、大概のことは先人がいるもんだ。

まぁ、そんなこんなで、こんなスクリプト書いてみました。
やってることはなんてこと無いけどコメントも書いたら長くなったのでファイルもアップしておきます。自分のために・・・
エンコードはUTF-8
→個人的バックアップスクリプト backup.txt
 (.sh拡張子がアップできないので.txtになってます)



#!/bin/sh

##########################################
######### バックアップスクリプト #########
####### HDDのルートにバックアップ #######
##########################################
#rsyncのバックアップ元
declare src=/home/share/
#バックアップ先のHDDの名前(ファイルシステムのラベル)
declare backupHDDlabel=NTFS120GB
#ログファイル名(絶対パス)
declare log=/home/share/log/backup.log
##########################################
########## 設定するのはここまで ##########
##########################################
#文字化け対策
export LANG=ja_JP.UTF-8

declare datestr=`date +"%Y-%m-%d_%H%M%S"`
echo "########### BackUpStart "$datestr" ##########" >> $log

#マウントするディレクトリ
declare mountdir=/media/$backupHDDlabel

#backupHDDlabelでHDDを探してbackupHDD変数にデバイスラベル?を格納?
declare backupHDD=`findfs LABEL=$backupHDDlabel` >> $log

#backupHDDのマウント先のディレクトリを作成(エラー抑止)
mkdir $mountdir >/dev/null 2>&1

#backupHDDをマウント HDDが見つからない時はディレクトリを消去してexit
mount $backupHDD $mountdir || { echo "バックアップ失敗。HDDが見つかりません。" >> $log ; rm -rf $mountdir ; exit 1; }


#必要ないけどこっちの方がわかりやすい
declare dest=$mountdir

#バックアップ
rsync -ab --suffix=.$datestr~ --stats --exclude=log/ --exclude=exclude/ $src $dest >> $log
echo "EndTime "$(date +"%Y/%m/%d %p %I:%M:%S") >> $log
#ログ見やすいように改行挿入
echo "" >> $log

#ログは同期(ログのログは残さない)
rsync -a $src/log/ $dest/log/ >/dev/null 2>&1


#backupHDDをアンマウント(エラー抑止)
umount $backupHDD >/dev/null 2>&1

#マウントしたディレクトリを消去
rm -rf $mountdir


これを『/etc/cron.weekly』なり『/etc/cron.daily』なりに入れて使います。

まぁ、先ほど 『find / -name NTFS120GB』とか書いたけど、結局調べたらその用途に『findfs LABEL=』というコマンドがあるらしいことが発覚。
ならそっち使いましょう。findの正しい使い方かどうか解らないからね・・・私のちっぽけな発見は儚く消えた。



<<追記 1>>
その後、外付けNTFSもSambaからみたいかなぁ~ と思い、Sambaの設定をしてみるが、中を見れない。
で、VNCのGUIからパーミッションを変更しようとしても変わらない。
で、ふと気付く、NTFSだから?
あー、NTFSではパーミッションなんて設定できないか・・・ 多分そうだろう・・・たぶん・・・
と言うわけで、そんな弊害があるのね・・・
まぁ、、、主に、写真だのflacとかのデータのバックアップ先だしいっか。
ということで、こういう事もありますよっと。  orz

<<追記 2>>
文字化け対策しました。

<<追記 3>>
重大な問題が発覚したのでこちらをどうぞ。→CentOS6.0 自動バックアップ その3
スポンサーサイト



PageTop

コメント

 ※
 ※
管理者にだけ表示を許可する
  ※ 必須項目です