Pare o tar após erro de fita

0

Estou tentando extrair arquivos de um dispositivo de fita usando tar e estou recebendo erros de E / S:

tar: /dev/nst0: Cannot read: Input/output error

No entanto, tar tenta continuar mesmo assim:

tar: Skipping to next header

Existe uma maneira de informar tar para sair diretamente após a primeira ocorrência do erro Cannot read ? Eu trabalhei meu caminho através das man pages e do manual tar , mas não consegui encontrar nada parecido. Ou existe uma maneira de capturar a mensagem de erro no shell de chamada e matar tar de fora?

O SO é o Ubuntu 16.04 com o kernel 4.4.0-38 e tar é o GNU tar 1.28.

    
por allion 26.11.2016 / 20:32

1 resposta

0

Você pode usar um script de espera:

#!/usr/bin/expect -f

# Timeout: 10000 seconds
set timeout 10000

spawn tar your tar args come here
# spawn custom-tar-script.sh

expect "tar: /dev/nst0: Cannot read: Input/output error"

send_user "Will kill PID <[exp_pid]>.\n"
exec kill [exp_pid]
# exec killall tar
# exec custom-kill-script.sh
close

(adapte-o às suas necessidades)

    
por 26.11.2016 / 22:20

Tags