- PR -

cronでDDSにバックアップ

投稿者投稿内容
Dr.Doraemon
ぬし
会議室デビュー日: 2002/03/23
投稿数: 265
投稿日時: 2004-02-26 23:42
お世話になっております。

現在運用中のサーバがあり、日々のバックアップをcronとdumpコマンドを使って、DDS3のテープへバックアップをとることにしました。
 バックアップをとる場所は、「/」の直下にあるディレクトリ「/abc」というディレクトリになります。
 バックアップの内容をシェルファイルにして、シェルからファイルを実行するとバックアップは正常に動作し完了します。
 で、crontabに毎日朝3時にその作ったシェルを流すようにしたのですが、朝になってrestore -tで内容を見てみると何もバックアップされていない状態になってします。
cronのログには、シェルを起動したあとは残っております。ためしに、シェルファイルにdumpコマンドを実行後に、テープをイジェクトする「eject /dev/st0」と追記しcronで実行したところ、テープは排出されているのですがやはりバックアップデータは記録されておりませんでした。ただ、ejectコマンドを記述した状態でcronで実行された後はいつも、Linuxのログイン画面に「Error with sense data: Current st09:00: sense key Not Ready Additional sense indicates Medium not present」と表示されています。

どうも、メディアがないといっているような気がします。しかし、シェルスクリプトには、dumpコマンドの後にejectコマンドを呼んでいるので、メディアが先に排出されるとはちょっと考えにくいとは思っております。

なにか解決にいたるヒント等はございませんでしょうか。

環境:
OS : RedhatLinux 7.3
RAM : 512MB
HDD : 80GB(RAID1 ハードウェアRAID)

よろしくお願い致します。
コブラ
ぬし
会議室デビュー日: 2003/07/18
投稿数: 1038
お住まい・勤務地: 神奈川
投稿日時: 2004-02-27 09:49
ひょっとして、バックアップする(?) ハードディスクにSCSIを使ってませんか?
Dr.Doraemon
ぬし
会議室デビュー日: 2002/03/23
投稿数: 265
投稿日時: 2004-02-27 09:55
お世話になっております。

コブラ様早速レスありがとうございます。

バックアップするハードディスクは自身はIDEのドライブなのですが、ハードウェアRAIDにするために「PROMISE TX-2000」というATA-133のRAIDカードを経由した形で起動をしておりますのでLinuxから見れば、SCSIで見えていると思います。

また、DDSのドライブは、SCSI(Adaptec AHA-2940U)を経由して接続されております。

この構成だとなんらかの問題が生じるのでしょうか?

よろしくお願い致します。
コブラ
ぬし
会議室デビュー日: 2003/07/18
投稿数: 1038
お住まい・勤務地: 神奈川
投稿日時: 2004-02-27 11:00
http://www.linux.or.jp/JF/JFdocs/SCSI-Programming-HOWTO-21.html

この、真ん中辺りの "Table 69: Sense Key (0h-7h) Descriptions" の 3h の項目を
見て下さい。私自身、このエラーに遭遇した事がありませんので、確かな事は明言できません
が、テープの媒体そのものにエラーが存在する可能性があります。

ただ、3h の MEDIUM ERROR. の説明の最後に target is unable to distinguish between
a flaw in the medium and a specific hardware failure (sense key 4h).

これは放置できない問題でしょう。ディスク側か、テープドライブ側か、、特定できませんが、
念のため、業務時間外にファイルシステムを umount して fsck でディスクを修復した方が
良いかも知れません。しかし、バックアップ取れてないんでしたね。fsck 実行した事により、
本当にハードディスクのファイルシステムに欠陥が存在した場合、インコンシステント・
スパイラルに陥る可能性もあります。先ずは、一度テープを変えてみるところから始めた
方が良いかも。
コブラ
ぬし
会議室デビュー日: 2003/07/18
投稿数: 1038
お住まい・勤務地: 神奈川
投稿日時: 2004-02-27 11:10
ありゃ、Not Ready だから 2h を見るべきだったようですな。

Indicates that the logical unit addressed cannot be accessed.
Operator intervention may be required to correct this condition.

しかし、ただ correct this condition て言われても一体どないせぇっちゅぅ話ですが・・・
Dr.Doraemon
ぬし
会議室デビュー日: 2002/03/23
投稿数: 265
投稿日時: 2004-02-27 11:17
お世話になっております。
コブラさん、詳細なレスありがとうございます。

なるほど、ユニットにアクセスできないとのことですか・・・。
でも、不思議です。
 なんで、シェルスクリプトをシェル画面から手で起動させると正常にバックアップができるのに、cronから実行させるとユニット(たぶんここでは、DDSドライブのことだと思うのですが)にアクセスできないのでしょう。
 cronの実行ユーザもとりあえず、rootで起動するようにしているのですが。

 cronでも手動でも動作しないのであればハード的な物も考えられるのですがcronから実行したときにのみ起きるという理由がよくわかりません。

このような現象はふつうでは起きないのですよね!?
コブラ
ぬし
会議室デビュー日: 2003/07/18
投稿数: 1038
お住まい・勤務地: 神奈川
投稿日時: 2004-02-27 11:38
手入力で正常終了するコマンドをそっくりそのまま crontab に登録してるのに異常終了する
のは確かに尋常ではないですね。

むぅ?、後は cron の場合だけテープを巻き戻さずに途中から記録しようとしてるとか、2回以上
同じコマンドが繰り返されてないかとか、、この場合逆に device busy っていう結果を
ちゃんと返してくれる筈ですが、、チェックするとしたらもう、この程度でしょう。
まぁ、オプション使えば追加記録もできるんでしょうけどね。

原因は非常に単純な様な気がしますが・・・
Dr.Doraemon
ぬし
会議室デビュー日: 2002/03/23
投稿数: 265
投稿日時: 2004-02-27 17:58
お世話になります。
コブラさん、レスありがとうございます。

やはり、簡単な部分でのミスが考えられるのでしょうか・・・。

> 後は cron の場合だけテープを巻き戻さずに途中から記録しようとしてるとか、
> 2回以上同じコマンドが繰り返されてないかとか、
> この場合逆に device busy っていう結果をちゃんと返してくれる筈ですが
そうですよね・・・。
/var/log/messageにもそのよなメッセージはでていませんでした。

バックアップをする際にランレベルが3のままになっていたのですがこれはなにか関係があるのでしょうか・・・。
とりあえず、スクリプトにinit 1と付け加えようと思っております。

スキルアップ/キャリアアップ(JOB@IT)