- PR -

テープの使用容量を取得するには?

1
投稿者投稿内容
RIN
常連さん
会議室デビュー日: 2006/10/11
投稿数: 21
投稿日時: 2007-12-12 18:10
いつもお世話になっております。

以下こちらの環境です
OS:Centos 5
テープ:hp dds-3 C5708A

テープの残容量チェックのスクリプトを作ろうとしていますが、
テープの使用容量の取得方法が思いつけません。

Shellでテープの使用容量を取得する方法について
どなたかアドバイスをいただけませんでしょうか?
温州蜜柑
ベテラン
会議室デビュー日: 2005/01/24
投稿数: 65
お住まい・勤務地: 東京都
投稿日時: 2007-12-12 20:15
ひたすら計算するしかないのでは?

コード:
#!/bin/sh

# $は半角に変換してください
tape_size=4294967296

# デバイス名(/dev/rmt/0)は適当に変更してください
size=`tar -tvf /dev/rmt/0 | awk '{print $3}'`

sum=0
for i in $size
do
    sum=`expr $sum + $i`
done

remain=`expr $tape_size - $sum`

printf "%d\\n" $remain

exit


あるかな
大ベテラン
会議室デビュー日: 2003/11/04
投稿数: 245
投稿日時: 2007-12-12 23:50
こんばんわ。

ただ、そこまでやっても正確じゃないですよね。
圧縮モードで、どこまで圧縮されているかにもよったり、よらなかったり…

みなさんは、どうしているのかなぁ、と疑問でしたが。
RIN
常連さん
会議室デビュー日: 2006/10/11
投稿数: 21
投稿日時: 2007-12-13 10:25
温州蜜柑さん、あるかなさん
詳しくアドバイスを頂いて有難うございます。
試験させて頂いた後、また報告いたします。

圧縮の場合、圧縮率を加味して計算しなければ、
なりませんでしょうか、


[ メッセージ編集済み 編集者: RIN 編集日時 2007-12-13 10:47 ]
RIN
常連さん
会議室デビュー日: 2006/10/11
投稿数: 21
投稿日時: 2007-12-26 12:59
急に別件が入っていまして、なかなか書き込みことができなくて
ごめんなさい。
いろいろ調べていたのですが、下記のような計算方法で
テープ使用容量の計算をしております。
皆さん、いかがいでしょうか?
# setenv TAPE /dev/nst0
# mt eod
# mt status
SCSI 2 tape drive:
File number=1, block number=4000000, partition=0.
Tape block size 512 bytes. Density code 0x42 (no translation).
Soft error count since last status=0
General status bits on (1010000):
ONLINE IM_REP_EN

block number=4000000 そしてその下の行の Tape block size 512 bytes により
4000000x 512(bytes) = 2048000000(bytes) / 1024 /1024/1024 = 約1.9GB


[ メッセージ編集済み 編集者: RIN 編集日時 2007-12-26 13:00 ]
1

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