왜 테일 모드가 작동을 멈추는가?


11

less테일 모드 (F 명령 이하 -f)로 Linux에서 명령을 사용하면 특정 시스템 및 / 또는 특정 파일에서 작업이 일관 적으로 중지됩니다. 새로운 변경 사항은 표시되지 않습니다.

나는 오래 전에 이것을 고쳤다는 것을 알고 있지만 해결책이 무엇인지 기억하지 못한다.

어떤 아이디어?


strace를 사용하여 무엇을하고 있는지 보지 않았습니까? 어쩌면 오류가 표시 될 수 있습니다.
wfaulk

참고로, 문제의 파일 이 롤링 / 회전 / 재생 되지 않았기 때문에 응답 하지 않습니다 .
TREE

답변:


12

를 사용해보십시오 less --follow-name. 파일의 이름이 동일하더라도 파일을 업데이트하는 프로세스는 파일의 inode를 변경하는 방식으로 수행 될 수 있습니다. 따라서 OS 관점에서는 업데이트 후 새 파일입니다.


+1 완벽한 답변, 이것이 바로이 옵션이 소개 된 이유입니다. 참고 --follow-name적은 v415 (에 도입 된 greenwoodsoftware.com/less/news.415.html ) 발표 11월 15일 2007 따라서 기존 리눅스 설치가 없을 수 있습니다.
sleske

3

logrotate에 의해 회전 된 로그 파일을보고 있습니까? 덜보고있는 파일의 이름이 바뀌면 (예 : logrotate에 의해 log에서 log.0로) 새 항목이 다른 파일 (원래 이름으로)에 기록 되더라도 해당 파일을 계속 감시하지 않습니다.


이 경우 tail --follow = name [filename]을 시도하십시오 (이는 파일 이름이 바뀔 경우 tail이 파일을 주기적으로 다시 여는 원인이됩니다). 참조 gnu.org/software/coreutils/manual/html_node/...
랜디 Orrison에게

아니요, 로그가 회전하지 않습니다. 같은 파일입니다.
TREE

1

어쩌면 당신은 tail -f [filename]대신 시도 할 수 있습니까?


4
더 적 으면 Ctrl-c를 사용하여 "꼬리를 일시 중지"하여 특정 줄로 이동 한 다음 나중에 다시 시작할 수 있습니다 (F 사용). 그래서 어떤 경우에는 "tail -f"보다 선호됩니다.
dogbane

tail -f는 작동하지만 더 적은 범위 내에서 작동하는 것을 선호합니다.
TREE

내가 참조. 몰랐어요
brandstaetter

0

그렇습니다 less +F --follow-name. --follow-name내 경우에 들어오는 변경 사항을받지 않고 같은 이름으로 파일을 모니터링합니다 (CentOS 7).

실제로 나는 이것에 대한 별칭을 만듭니다.

이 줄을 추가하십시오 /etc/profile.d/alias.sh:

alias lf="less +F --follow-name"

저장하고 소스를 사용하여 지금 사용하십시오. . /etc/profile.d/alias.sh

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