A restauração do tar da fita falha

3

Eu tenho um backup básico para script de fita e script de restauração que foi escrito por um administrador anterior. Ao tentar restaurar da fita, recebo o seguinte erro:

tar: v: Cannot open: No such file or directory
tar: Error is not recoverable: exiting now

Eu tentei executar os comandos manualmente para inserir o caminho de restauração: tar -xfv /dev/st0 /srv

Eu também tentei restaurar caminhos alternativos, todos os quais fornecem a mesma mensagem de erro. Abaixo estão os scripts de backup e restauração. Qualquer ajuda para identificar qual é o meu problema seria muito apreciada.

Aqui está o script de backup:

echo Starting backup to tape at 'date'
mt -f /dev/st0 rewind
tar cfv /dev/st0 /srv
mt -f /dev/st0 eject
echo Backup to tape complete at 'date'
exit

Aqui está o script de restauração:

echo -n Starting restore from tape at 'date' to directory: 'pwd'
mt -f /dev/st0 rewind
tar -xfv /dev/st0
echo Restore from backup complete at 'date'
exit
    
por user279459 08.05.2014 / 17:51

1 resposta

0

As opções do comando tar estão erradas no script de restauração. Isso funciona:

tar xfv /dev/st0

A única diferença é a falta de menos, no entanto, isso é muito importante. Se você usa o '-' então está usando a sintaxe usual das opções GNU. Nesse caso, a opção 'f' deve ser seguida pelo nome do arquivo. No seu script, 'f' é seguido por uma única letra 'v'. Então, o tar tentou extrair o arquivo chamado 'v'. Que não existe como a mensagem de erro diz corretamente.

Se o primeiro argumento não começar com o '-', então você está usando a sintaxe tar antiga, mas bastante confortável. Nesse caso, os argumentos obrigatórios das opções seguem todo o conjunto das opções. Agora, 'v' significa verboso, como esperado, e o arquivo de origem é a unidade de fita (/ dev / st0), como esperado.

A partir da documentação do GNU tar no link :

  

Até onde sabemos, todos os programas tar, GNU e não-GNU, suportam   opções: isto é, se o primeiro argumento não iniciar com '-', é   assumido para especificar letras de opção. O tar GNU suporta opções antigas não   apenas por razões históricas, mas também porque muitas pessoas estão acostumadas   eles. Se o primeiro argumento não começar com um traço, você está   anunciando o estilo de opção antigo em vez do estilo de opção curto; velho   opções são decodificadas de maneira diferente.

     

Como opções curtas, as opções antigas são letras únicas. No entanto, antigo   as opções devem ser escritas juntas como um único conjunto agrupado, sem   espaços separando-os ou traços que os precedem. Este conjunto de cartas   deve ser o primeiro a aparecer na linha de comando, após o programa tar   nome e algum espaço em branco; opções antigas não podem aparecer em nenhum outro lugar.   A letra de uma opção antiga é exatamente a mesma letra que a   opção curta correspondente. Por exemplo, a opção antiga 't' é a   mesmo que a opção curta '-t' e, consequentemente, o mesmo que o longo   opção '--list'. Então, por exemplo, o comando 'tar cv' especifica o   opção '-v' além da operação '-c'.

     

Quando opções que precisam de argumentos são dadas junto com o comando,   todos os argumentos associados seguem, na mesma ordem das opções.   Assim, o exemplo dado anteriormente também poderia ser escrito no antigo   estilo da seguinte forma:

     

$ tar cvbf 20 / dev / rmt0

     

Aqui, '20' é o argumento de '-b' e '/ dev / rmt0' é o argumento de   '-f'.

    
por Hontvári Levente 26.02.2015 / 02:16

Tags