- PR -

cronでDDSにバックアップ

投稿者投稿内容
コブラ
ぬし
会議室デビュー日: 2003/07/18
投稿数: 1038
お住まい・勤務地: 神奈川
投稿日時: 2004-02-27 19:27
いやぁ、init 1 という事は、通常の unix に準拠する限りシングルユーザー・モード。
テープにバックアップとるのに、特に init の runlevel を変える必要も無かったんじゃ
ないかと思いますが。マルチユーザー・モードのままでできるんじゃないか、と。

ただし、デバイスへのアクセスが絡みますのでこの作業は root でやるべきでしょう。
しかし、スクリプトのエラーメッセージすら出ないとは・・・
一度、 dd コマンドに切り替えてはどうでしょう(笑)
Dr.Doraemon
ぬし
会議室デビュー日: 2002/03/23
投稿数: 265
投稿日時: 2004-02-27 21:36
お世話になります。
コブラさん、ご丁寧にレスありがとうございます。

そうですよね。
ランレベルは関係ないですよね。
シェル画面からrootでスクリプトを動作させれば、問題なく動作するというのが疑問ですね・・・。

 仕方ないので、当分は手でバックアップを取るしかなさそうですね・・・。
実際、稼働してしまっているサーバなのでOSの再インストールもできない状態ですからしかたないです・・・。
コブラ
ぬし
会議室デビュー日: 2003/07/18
投稿数: 1038
お住まい・勤務地: 神奈川
投稿日時: 2004-02-28 02:25
こうなったら、とことん付き合いますぞ。

コード:
#!/bin/sh
#
while :
do
    tmp=`date | awk '{ print  }'`
#
    h=`echo $tmp | sed 's/:.*//'`
    m=`echo $tmp | sed 's/[0-9][0-9]://' | sed 's/:[0-9][0-9]//'`
    s=`echo $tmp | sed 's/.*://'`
#
    if [ $h -eq `expr 03` ]; then
        if [ $m -eq `expr 00` ]; then
            if [ $s -eq `expr 00` ]; then
                dd if=/dev/hda1 of=/dev/st0 conv=notrunc,noerror
            fi
        fi
    fi
#
    sleep 1
done



RedHat9 なら恐らくこれで・・・夜中の3:00丁度に dd 実行です。
後、 doraemon.sh っちゅぅの作って、手入力で成功するシェルそのまま書いて

$ at 3am -f doraemon.sh

とか。
コブラ
ぬし
会議室デビュー日: 2003/07/18
投稿数: 1038
お住まい・勤務地: 神奈川
投稿日時: 2004-02-29 16:01
オカしいな。
ここの phpBB って肝心なとこで $ 付きが消えたりするな。

tmp=`date | awk '{ print $5 }'`

コピー&ペーストしてるからミスる筈無いのにな。
ミスっとったら末尾の中括弧とかも消えてる筈やもんな。

失礼しました。5行目は
引用:

tmp=`date | awk '{ print }'`



このままやと、何にも表示されず時刻が取ってこれないので
引用:

tmp=`date | awk '{ print $5 }'`



こっちに差し替えて下さい(笑)
Dr.Doraemon
ぬし
会議室デビュー日: 2002/03/23
投稿数: 265
投稿日時: 2004-03-01 00:57
お世話になります。
コブラさん、本当に重ね重ねありがとうございます。

私の方でもちょっと調査をしていたのですが、
どうも私のイージーミスのようです。

スクリプトからdumpコマンドを呼ぶときにフルパスで呼んでいませんでした。
なので、dumpコマンドの位置にパスが切れていなくてたまたまそこだけが通り越していたようです。

で、問題のメッセージなのですが、ejectコマンドを使って、/dev/st0を排出するとあの「Error with sense data:・・・」が出るようです。

 今回の原因は私が、ちゃんとスクリプト上でパスの設定をせずにコマンドを実行させていたことによるあきらかなミスでした。
 dumpコマンドの実行結果を「dump xxx > /var/log/dump.log」とかで、ログにとっていればもう少し早く解決できたのにと今頃になって感じる次第です。

 あんなに、事細かにddでの実行方法まで書いていただきありがとうございます。
 ddでの実行方法も参考にしてみます。

本当に、とことんつきあっていただきまして、本当に感謝しております。
ありがとうございました。
コブラ
ぬし
会議室デビュー日: 2003/07/18
投稿数: 1038
お住まい・勤務地: 神奈川
投稿日時: 2004-03-01 05:24
>スクリプトからdumpコマンドを呼ぶときにフルパスで呼んでいませんでした。

笑うしかない・・・
ギコハハハ!!
コブラ
ぬし
会議室デビュー日: 2003/07/18
投稿数: 1038
お住まい・勤務地: 神奈川
投稿日時: 2004-03-01 15:10
>ejectコマンドを使って、/dev/st0を排出するとあの「Error with sense data:・・・」>が出るようです。

ejectコマンドで ioctl(); が完了する前に、 read(); でテープの論理ユニットを
チェックでもしてるんですかね。。何も記録されてなければ、一応「何も読めなかった」ので
"Not Ready" が返されて・・・

そういやぁ、私は DAT しか使った事ありませんが、何か記録する前とかejectする寸前に
ダイオードがピコピコ点滅してました。あれブロッキングモードでバッファに読み込んでる
最中なんですかね(笑)

あれで何も記録されてない真っさらだと、例の "sense key Not Ready" これはこれで正しい結果
なんでしょうねぇ。

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