Estou usando este script:
#!/bin/sh
TAPE="/dev/nst0"
mt-st -f $TAPE setblk 0
mt-st -f $TAPE status
totalsize=$(du -csb . | tail -1 | cut -f1)
tar cf - . | \
gpg --encrypt --recipient [email protected] --compress-algo none | \
pipemeter -s $totalsize -a -b 256K -l | \
mbuffer -m 3G -P 95% -s 256k -f -o $TAPE \
-A "echo next tape; mt-st -f $TAPE eject ; read a < /dev/tty"
Para adaptá-lo às suas necessidades, aqui estão os principais pontos:
-
tar
lê o diretório atual e as saídas parastdout
. Desta forma, o tar não lida com a mudança de fitas ou criptografia. -
gpg
tem compressão desativada, pois isso diminui consideravelmente o processo (100MB / seg + até 5MB / seg) -
pipemeter
é usado para monitorar o processo e fornecer um tempo estimado até que todos os dados tenham sido gravados na fita - isso pode ser removido se não for necessário -
mbuffer
armazena os dados na memória - este exemplo usa um buffer de 3 GB, ajuste conforme necessário - para permitir que a unidade de fita funcione por mais tempo antes de ficar sem dados, reduzindo o "engraxamento" da fita. - A opção
-A
dembuffer
manipula várias fitas ao ejetar uma fita depois que o fim é alcançado e aguardar a teclaEnter
ser pressionada após a próxima fita ter sido carregada. É aqui que o seu script/root/advancetape
pode ir.
Um problema a ter em conta quando utilizar isto com fitas LTO:
- O tamanho do bloco de fitas é definido como variável e
mbuffer
grava em 256k blocos. Isso funciona bem para mim com uma unidade LTO3, mastar
gosta de usar um tamanho de bloco diferente. Isso, combinado com o fato de quembuffer
lida com a abrangência em fitas em vez detar
, significa que você precisará ler os dados da fita novamente pormbuffer
e, em seguida, passá-los porgpg
etar
. Se você tentar extraí-lo diretamente da fita comtar
(mesmo se você ignorou a criptografia), ele provavelmente não funcionará e certamente será interrompido assim que chegar ao fim da primeira fita, sem lhe dar a chance de mudar para a fita. próxima fita.