Se você pode instalar o rmt no sistema com a unidade de fita, você pode ter o tar acessando a unidade a rede. Por padrão tar
usará o protocolo rsh
para executar o rmt no servidor de fita, mas se você tiver o GNU tar, você pode dar a opção --rsh-command='ssh tapeserver /usr/sbin/rmt'
.
Se você tiver fitas LTO, um fator de bloqueio de 20 pode ser muito pequeno para manter a transmissão da fita; 126 é o que usamos com o LTO4. Mas eu acho que algumas implementações rmt restringem você a 20 blocos de tamanhos de transferência, então você pode querer olhar para a implementação do @ schily de rmt .
Em um comentário que você fez
rmt is a good choice, but how to divide it's time? I have about twenty servers who needs backup. How can I queue them to use rmt?
Se os comandos de backup de cada servidor puderem ser empacotados em um shell script, provavelmente existem alguns sistemas de enfileiramento em lote flexíveis que podem garantir o processamento sequencial deles, mas não sei de nenhum outro e percebo que você não não quero ter muita complexidade aqui.
Como um começo, você poderia tentar algo assim, em um sistema que pode ssh para todos os servidores:
#!/bin/sh
lock=/var/run/doalldumps.lock
status=/var/run/doalldumps.status
for s in $(cat ~/servers)
do
(
flock -e 9
echo started $s at $(date) > $status
ssh $s -n command-to-do-backups
echo finished $s at $(date) > $status
) 9> $lock
done
Como alternativa, uma maneira simples de serializar o acesso à unidade de fita é usar flock
para bloquear um arquivo no servidor com a unidade de fita. Você poderia usar isso na opção tar --rsh-command
:
tar ... --rsh-command='ssh tapeserver flock -e /var/run/tape.lock /usr/sbin/rmt'