Impossibile vedere la progressione di un file con `tail -f`


11

È una sorpresa il motivo per cui ora tail -fnon funziona mentre prima lo era.

Ho il comando seguente per eseguire il backup.

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

Per vedere l'output e l'errore, ci sono quei 2 file z1e z2.

Ora voglio vedere l'output del comando su un terminale dal file z1:

ubuntu@ubuntu:~$ tail -f z1

ma questo comando non mostra i dati che vengono aggiunti con il tempo.

Sto lavorando su un'installazione live di Ubuntu 14.04.1 usando pen drive usb. Questo può essere il motivo?


1
Forse non correlato al tuo problema, ma dici 2 > z2. Penso che la stderrsintassi di reindirizzamento in 2>realtà non consenta uno spazio tra il 2e il >.
Ulrich Schwarz,

@UlrichSchwarz mi dispiace che sia un mio errore. Ho corretto
Ravi il

1
Dato che hai dato a tar f outputfilenameun'opzione, z1 sarà un file vuoto.
Mark Plotnick,

@MarkPlotnick no z1 ha l'output corrispondente all'opzione -v. Se eseguo 'cat z1', mostrerà tutti i file di cui è stato eseguito il backup. Il problema è che il comando tail non funziona.
Ravi,

@Ravi scusa, hai ragione, GNU tar scriverà la lista su stdout quando v e f sono usati insieme. Questo va contro lo standard scritto per tar. Proverà a riprodurre il tuo problema. In quale directory sono presenti z1 e z2? Il disco RAM del CD live o l'unità USB? Se USB, qual è il tipo di filesystem (ext3, vfat)?
Mark Plotnick,

Risposte:


10

Posso riprodurlo. È un bug.

Su un live CD di Ubuntu, il filesystem che contiene la home directory dell'utente predefinito è type overlayfs , che sostiene di supportare inotify ma non lo fa.

Quindi tail -fsu un file su overlayfs tenta di utilizzare inotifye quindi non riceve alcuna notifica quando il file è cambiato.

La segnalazione di bug di Ubuntu per questo è Bug # 882147: overlayfs non implementa correttamente le interfacce di inotify . Una soluzione alternativa citata in quella segnalazione di bug, da Jim Meyering a Andrea Ranieri, è da usare

tail -f ---disable-inotify file

(Ci sono davvero tre trattini lì.)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.