Impossible de voir la progression d'un fichier avec `tail -f`

11

C'est une surprise pourquoi maintenant tail -fne fonctionne pas alors que plus tôt l'était.

J'ai la commande ci-dessous pour exécuter pour la sauvegarde.

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

Pour voir la sortie et l'erreur, il y a ces 2 fichiers z1et z2.

Maintenant, je veux voir la sortie de la commande sur un terminal à partir du fichier z1:

ubuntu@ubuntu:~$ tail -f z1

mais cette commande n'affiche pas les données qui s'ajoutent avec le temps.

Je travaille sur l'installation en direct d'Ubuntu 14.04.1 à l'aide d'une clé USB. Cela peut-il être la raison?

Ravi
la source
1
Peut-être sans rapport avec votre problème, mais vous dites 2 > z2. Je pense que la stderrsyntaxe de redirection 2>ne permet pas réellement un espace entre le 2et le >.
Ulrich Schwarz
@UlrichSchwarz désolé, c'est mon erreur. J'ai corrigé
Ravi
1
Puisque vous avez donné à tar une f outputfilenameoption, z1 va être un fichier vide.
Mark Plotnick
@MarkPlotnick no z1 a la sortie correspondant à l'option -v. Si je lance «cat z1», il affichera tous les fichiers sauvegardés. Le problème est que la commande tail ne fonctionne pas.
Ravi
@Ravi désolé, vous avez raison, GNU tar écrira la liste sur stdout lorsque v et f sont utilisés ensemble. Cela va à l'encontre de la norme écrite pour le goudron. J'essaierai de reproduire votre problème. Dans quel répertoire se trouvent z1 et z2? Le disque RAM du CD live ou la clé USB? Si USB, quel est le type de système de fichiers (ext3, vfat)?
Mark Plotnick

Réponses:

10

Je peux reproduire cela. C'est un bug.

Sur un CD live Ubuntu, le système de fichiers qui contient le répertoire personnel de l'utilisateur par défaut est de type overlayfs , qui prétend prendre en charge inotify mais ne le fait pas.

Donc, tail -fsur un fichier sur overlayfs essaie d'utiliser inotifyet ne reçoit aucune notification lorsque le fichier a changé.

Le rapport de bogue Ubuntu pour cela est le bogue n ° 882147: overlayfs n'implémente pas correctement les interfaces inotify . Une solution de contournement citée dans ce rapport de bogue, de Jim Meyering via Andrea Ranieri, consiste à utiliser

tail -f ---disable-inotify file

(Il y a vraiment trois tirets là-bas.)

Mark Plotnick
la source