Невозможно увидеть прогресс файла с `tail -f`

11

Удивительно, почему сейчас tail -fне работает, а раньше было.

У меня есть команда ниже для запуска для резервного копирования.

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

Чтобы увидеть вывод и ошибку, есть эти 2 файла z1и z2.

Теперь я хочу увидеть вывод команды на терминал из файла z1:

ubuntu@ubuntu:~$ tail -f z1

но эта команда не показывает данные, которые добавляются со временем.

Я работаю над установкой Ubuntu 14.04.1 в режиме реального времени, используя USB-накопитель Может ли это быть причиной?

Ravi
источник
1
Возможно, не связано с вашей проблемой, но вы говорите 2 > z2. Я думаю, что stderrсинтаксис перенаправления на 2>самом деле не позволяет пробел между 2и >.
Ульрих Шварц
@UlrichSchwarz извините, это моя ошибка. Я исправил
Рави
1
Так как вы дали tar f outputfilenameопцию, z1 будет пустым файлом.
Марк Плотник
@MarkPlotnick no z1 имеет вывод, соответствующий опции -v. Если я запускаю 'cat z1', он покажет все файлы, для которых есть резервные копии. Проблема в том, что команда tail не работает.
Рави
@Ravi извините, вы правы, GNU tar запишет список в стандартный вывод, когда v и f используются вместе. Это идет вразрез с письменным стандартом для tar. Постараюсь воспроизвести вашу проблему. В каком каталоге находятся z1 и z2? RAM-диск живого CD или USB-накопитель? Если USB, какой тип файловой системы (ext3, vfat)?
Марк Плотник

Ответы:

10

Я могу воспроизвести это. Это ошибка.

На живом компакт-диске Ubuntu файловая система, которая содержит домашний каталог пользователя по умолчанию, имеет тип overlayfs , который утверждает, что поддерживает inotify, но не поддерживает.

Таким образом, tail -fфайл на overlayfs пытается использовать, inotifyа затем не получает никаких уведомлений, когда файл изменился.

Отчет об ошибке Ubuntu для этого - Ошибка # 882147: overlayfs неправильно реализует интерфейсы inotify . Обходной путь, процитированный в этом сообщении об ошибке от Джима Мейринга через Андреа Раньери, заключается в использовании

tail -f ---disable-inotify file

(Там действительно три дефиса.)

Марк Плотник
источник