Bir kasete veri hazırlamak gerçekten imkansız mı?


4

Her dosya için dd veya tar kullanarak kasete yazdığım dosyaların bir kaydını tutmak istiyorum. Ardından, çalışmanın sonunda, o günlüğü dd kullanarak kasetin başına kadar hazırlayın. Eğer çalışırsa, ilk birkaç bloğu okuyarak herhangi bir bandın içeriğini görebilirim ve daha sonra kaseti belirtilen dosyaya yerleştirmek için "mt fsf" yi kullanabilirim. Günlük, şöyle bir şeye benzeyecektir:

1 file1.gz
2 file2.gz
3 ...

Ve belki de faydalı bir örnek eklerim:

to restore the second file from the this list: mt -f /dev/nst0 fsf 2; tar xf /dev/nst0

Teybe boş bir yer yazarak koşuya başlıyorum:

## prepare a placeholder at the beginning of the tape    
dd if=/dev/zero bs=32k count=1024 of=/dev/nst0

## loop through the files in the directory, writing them to tape and a log
for file in $(ls test_dir); do 
    tar cf /dev/nst0 $file &&
    echo $file >>process.log
done

## rewind the tape and prepend the process.log to the tape
mt -f /dev/nst0 rewi
(dd if=process.log bs=32k; dd if=/dev/zero bs=32k count=1024)|dd of=/dev/nst0 bs=32k conv=noerror,sync,block count=1024

## see if worked
mt -f /dev/nst0 rewi
dd if=/dev/nst0 of=process.log bs=32k
mt -f /dev/nst0 fsf 1
tar tf /dev/nst0

Maalesef kayıt kaydını banttan okuyabildiğim halde, daha fazla veri çekemiyorum, bunun altındaki çıktıyı üretiyorum. İşlem günlüğüyle ilk dosyanın üzerine yazmayı denemezsem, test dizinindeki bir dosyanın adını üretir.

tar: This does not look like a tar archive
tar: Error exit delayed from previous errors

Bunun gerçekten bir yolu yok mu? Tüm dosyaları sıralayabildiğimi ve ardından teybe sığması gereken dosyaların bir listesini hazırlayabileceğimi biliyorum (bilinen / tahmini teyp kapasitesine bağlı olarak), sonra ilk önce bunu yazın; Bu neredeyse zekice değil.


1
Zeki kimin umrunda? Tek umursadığım tek şey kurtarılabilirlik. Zeki daha güvenilmez yaparsa, benim için işe yaramaz
Magellan

Katrandan daha önce bir şeyler koymayı denedin mi?
Zoredache

Kabul ediyorum, eğer “daha ​​güvenilmez” ise zekice değil. Sadece kasete sığdırmayı umduğunuzu değil, kasete koyduğunuz dosyaların kaydını tutabiliyorsanız, bunun akıllıca ve daha "güvenilir" olduğunu düşünüyorum.
worfly

Yanıtlar:


2

Sanırım yapabilirsin, ama TAR arşivinin başlangıcında böyle bir dosya yapamazsın; üstbilgileri var. Tar arşivinin şu anki içeriğini diske ileri götürmek ve başka bir dosyayı (başlık ve sonra veri blokları) bu şekilde serbest bırakılan alana yazmak istiyorsanız, bunu yapabileceğinizden şüpheleniyorum. Dosyanın başlangıcını veriyi taşımadan hareket ettirmek için bir yolunuz yoksa, böyle bir işlem çok pahalı olacaktır (her seferinde tüm bandı yeniden yazmakla eşdeğerdir).

İşte TAR başlığının GNU açıklaması.

Aksi takdirde, dosyaları bir şekilde kendiniz yönetirken, dosyaları yazmak için TAR'yi ve DD'yi kullanmayı unutmayın.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.