HardwareBanter

HardwareBanter (http://www.hardwarebanter.com/index.php)
-   Storage & Hardrives (http://www.hardwarebanter.com/forumdisplay.php?f=30)
-   -   Tape Scanning in Linux (http://www.hardwarebanter.com/showthread.php?t=111150)

2hawks November 3rd 05 04:32 PM

Tape Scanning in Linux
 
Hi,

Could someone kindly tell me how to scan tapes in Linux. For example,
if there are multiple cpio archives on one tape, how can I find out how
many are on it? If I am thinking correctly, cpio will only list
whatever is the first archive it finds.

Is it in the method of addressing the device? st0 and nst0 etc? or is
there a utility or command that can essentially ls the tape in the
drive?

Thanks much,
Robert


Steve Cousins November 3rd 05 06:02 PM

Tape Scanning in Linux
 
2hawks wrote:

Hi,

Could someone kindly tell me how to scan tapes in Linux. For example,
if there are multiple cpio archives on one tape, how can I find out how
many are on it? If I am thinking correctly, cpio will only list
whatever is the first archive it finds.

Is it in the method of addressing the device? st0 and nst0 etc? or is
there a utility or command that can essentially ls the tape in the
drive?


I just wrote a script to do something very similar with some old Amanda
tapes I have. Yours should be much simpler. I've changed it to do what
I think you want:

=======================
#!/bin/sh

# Script to do a cpio inventory of a tape.
#
# Assumes: 1. /dev/tape - /dev/nst0 or other non-rewinding tape device
# 2. not more than 100 tape files on the tape
# 3. programs: mt, seq, cpio, grep, wc, and bc are in PATH
# 4. mt reports "EOD" after end of last tape file is reached

mt rewind

for FILENUM in `seq 1 100`
do
echo "============================="
echo " Contents of file $FILENUM: "
echo "============================="
cpio -tv /dev/tape

# Check to see if we are at the end of the tape:
END_TEST=`mt status | grep EOD | wc -l | bc`
if [ "$END_TEST" = "1" ]
then
mt offline
exit
fi
done
=======================

While this isn't the most elegant script, it gets the job done. It will
give a "Input/Output" error after it gets to the end of the last file
because the status is EOF until the last cpio is done and then it goes
to EOD. Anyone have a better solution to this?

I'd run this as:

./ti.sh tape_1.log

to save the inventory to a file.

Good luck,

Steve


2hawks November 5th 05 07:11 AM

Tape Scanning in Linux
 
nice... thanks for that. That solves the cpio end of things for me I
guess. Now I wonder if that would work the same with tar.... or other
methods of writing to tape. Trick for me would be to develop a script
that just looked at the tape and did and ls of it... not dependent on
cpio or anything.


Steve Cousins November 7th 05 04:41 PM

Tape Scanning in Linux
 
2hawks wrote:

nice... thanks for that. That solves the cpio end of things for me I
guess. Now I wonder if that would work the same with tar.... or other
methods of writing to tape. Trick for me would be to develop a script
that just looked at the tape and did and ls of it... not dependent on
cpio or anything.


cpio will work with tar too. To check for what type of file is on the
tape you could try putting something like this in your script:

FILE_TYPE=`dd if=/dev/tape bs=32k count=1 | file -`

and then figure out what to do based on what is in the FILE_TYPE variable.

Have fun.

Steve


2hawks November 8th 05 04:32 PM

Tape Scanning in Linux
 
You are a gentleman and a scholar sir! Thanks for your assistance.
Btw, does anyone know if mt senses the actual block size when you do a
status (mt -f /dev/nst0 status) or is that based on driver defaults?



All times are GMT +1. The time now is 03:51 PM.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
HardwareBanter.com