Não é possível ver a progressão de um arquivo com `tail -f`

11

É uma surpresa porque agora tail -fnão está funcionando enquanto antes.

Eu tenho o comando abaixo para executar o backup.

ubuntu@ubuntu:~$ sudo tar -cvf /media/ubuntu/My*Linux/ub*data/zebra.tar /media/ubuntu/home > z1 2> z2 && echo "pass" || echo "fail"

Para ver a saída e o erro, existem esses 2 arquivos z1e z2.

Agora eu quero ver a saída do comando em um terminal do arquivo z1:

ubuntu@ubuntu:~$ tail -f z1

mas este comando não mostra os dados que estão sendo anexados com o tempo.

Estou trabalhando na instalação ao vivo do Ubuntu 14.04.1 usando o pen drive USB. Pode ser esse o motivo?

Ravi
fonte
1
Possivelmente não relacionado ao seu problema, mas você diz 2 > z2. Eu acho que a stderrsintaxe de redirecionamento 2>, na verdade, não permite um espaço entre oe 2o >.
Ulrich Schwarz
@UlrichSchwarz desculpe, esse é o meu erro. Eu corrigi
Ravi
1
Como você deu ao tar uma f outputfilenameopção, o z1 será um arquivo vazio.
Mark Plotnick
@MarkPlotnick no z1 tem a saída correspondente à opção -v. Se eu executar o 'cat z1', ele mostrará todos os arquivos armazenados em backup. A questão é que o comando tail não está funcionando.
Ravi
@ Ravi desculpe, você está correto, o GNU tar escreverá a lista no stdout quando v e f forem usados ​​juntos. Isso vai contra o padrão escrito para o alcatrão. Tentará reproduzir o seu problema. Em que diretório estão z1 e z2? O disco RAM do CD ao vivo ou a unidade USB? Se USB, qual é o tipo de sistema de arquivos (ext3, vfat)?
21868 Mark Plotnick

Respostas:

10

Eu posso reproduzir isso. É um bug.

Em um CD ao vivo do Ubuntu, o sistema de arquivos que contém o diretório inicial do usuário padrão é o tipo overlayfs , que afirma apoiar inotify, mas não.

Portanto, tail -fum arquivo no overlayfs tenta usar inotifye, em seguida, não recebe nenhuma notificação quando o arquivo foi alterado.

O relatório de bug do Ubuntu para isso é o Bug # 882147: o overlayfs não implementa corretamente as interfaces . Uma solução alternativa citada nesse relatório de bug, de Jim Meyering via Andrea Ranieri, é usar

tail -f ---disable-inotify file

(Existem realmente três hífens lá.)

Mark Plotnick
fonte