`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"

출력과 오류를 확인하려면이 두 파일 z1과이 z2있습니다.

이제 파일 z1의 터미널에서 명령의 출력을보고 싶습니다.

ubuntu@ubuntu:~$ tail -f z1

그러나이 명령은 시간이 지남에 따라 추가되는 데이터를 보여주지 않습니다.

USB 펜 드라이브를 사용하여 Ubuntu 14.04.1의 라이브 설치를 진행 중입니다. 이것이 이유가 될 수 있습니까?


1
아마도 문제와 관련이 없지만 말할 수 2 > z2있습니다. stderr리디렉션 구문 2>은 실제로 2와 사이에 공백을 허용하지 않는다고 생각 합니다 >.
Ulrich Schwarz

@UlrichSchwarz 죄송합니다. 제 실수입니다. 수정했습니다
Ravi

1
tar에 f outputfilename옵션 을 부여 했으므로 z1은 빈 파일이됩니다.
Mark Plotnick

@MarkPlotnick no z1에는 -v 옵션에 해당하는 출력이 있습니다. 'cat z1'을 실행하면 백업 된 모든 파일이 표시됩니다. 문제는 tail 명령이 작동하지 않는다는 것입니다.
Ravi

@Ravi 죄송합니다. v와 f를 함께 사용하면 GNU tar가 stdout에 목록을 작성합니다. 이것은 tar에 대한 서면 표준에 위배됩니다. 문제를 재현하려고 시도합니다. z1과 z2는 어떤 디렉토리에 있습니까? 라이브 CD의 RAM 디스크 또는 USB 드라이브? USB 인 경우 파일 시스템 유형 (ext3, vfat)은 무엇입니까?
Mark Plotnick

답변:


10

이것을 재현 할 수 있습니다. 버그입니다.

Ubuntu 라이브 CD에서 기본 사용자의 홈 디렉토리를 포함하는 파일 시스템은 overlayfs 유형 이며 inotify 를 지원한다고 주장 하지만 그렇지 않습니다.

따라서 tail -foverlayfs의 파일에서 파일을 사용하려고 시도한 inotify다음 파일이 변경 될 때 알림을받지 않습니다.

이에 대한 우분투 버그 보고서는 버그 # 882147입니다. overlayfs가 inotify 인터페이스를 올바르게 구현하지 않습니다 . Jim Meyering의 Andrea Ranieri를 통한 버그 보고서에서 인용 된 해결 방법은

tail -f ---disable-inotify file

(실제로 하이픈이 세 개 있습니다.)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.