"시계"의 롤링 버전

"시계"의 롤링 버전

서버 프로세스가 몇 초마다 다시 작성하는 상태 파일을 추적해야 합니다. 이 watch명령은 이 작업에 적합 watch cat file.txt하지만(예: ) 이제 테이블의 길이는 여러 페이지가 됩니다(회전된 와이드스크린 모니터에서도 마찬가지). 이 명령을 지속적으로 실행하기 위한 전용 디스플레이/모니터가 있으며, 관련 상태 값을 찾으려면 파일을 위아래로 스크롤할 수 있어야 합니다. 또한 전체 모니터를 해당 상태 파일에 전용으로 사용했기 때문에 우리도 실행되고 있지 않다는
점을 지적하고 싶습니다 .screentmux

이 주제를 검색했습니다(최고의 토론여기) 그러나 우리 시스템(Ubuntu 20)에서는 어떤 코드도 작동하지 않습니다. 예를 들어:

  • swatch실행 및 스크롤되지만 몇 분 후에 업데이트할 때마다 텍스트가 깨져 읽을 수 없게 됩니다.
  • pwatch너무 심하게 깜박여서 볼 수 없습니다( watch명령 자체가 완벽하게 원활하게 업데이트됩니다).
  • watch "cat file | tail -n $(($LINES - 2))"정적 오프셋이 있고 스크롤이 없습니다.
  • watchall실제로 스크롤되지 않습니다( curses거기에도 버그가 있는 것 같습니다).

그럼 이제 다시 질문을 드립니다. watchUbuntu에서 작동하는 스크롤 가능한 버전을 찾은 사람이 있습니까 ? 감사해요.

답변1

얼마나 자주 스크롤해야 하며 뷰를 얼마나 자주 업데이트해야 합니까? 스크롤해야 할 것으로 예상되는 경우 파일의 특정 인스턴스를 보는 데 몇 초 이상 걸릴 것으로 예상됩니다. 다음과 같은 것이 작동할 수 있습니다.

#!/bin/sh

file="${1}"
while true; do
  timeout 60s less "${file}"
done

답변2

klogg와 같은 일종의 로그 뷰어 애플리케이션이 귀하의 사용 사례에 유용할 것 같습니다.https://klogg.filimonov.dev/

답변3

당신은 그것을 사용할 수 있습니다viddy.

색상 출력 및 차이점 강조 표시를 포함하여 원래 watch 명령의 기본 기능을 가지고 있지만 스크롤을 허용하고 텍스트 검색 및 이전 버전의 출력으로 돌아갈 수 있는 타임머신 모드를 포함하여 몇 가지 더 멋진 기능을 갖춘 바이너리입니다. .

현재 설치하는 단일 라인은 다음과 같습니다.

wget -O viddy.tar.gz https://github.com/sachaos/viddy/releases/download/v0.3.6/viddy_0.3.6_Linux_x86_64.tar.gz && tar xvf viddy.tar.gz && sudo mv viddy /usr/local/bin

그럼 이렇게 사용하시면 됩니다

viddy -d -n 1 cat file.txt

매초마다 파일 내용을 가져오고 변경 사항을 강조 표시합니다. viddy가 실행되는 동안 ?키보드 단축키를 얻으려면 키를 누르십시오.

viddycmd 옵션:

$ viddy -h

Usage:
 viddy [options] command

Options:
  -b, --bell                 ring terminal bell changes between updates
  -d, --differences          highlight changes between updates
  -n, --interval <interval>  seconds to wait between updates (default "2s")
  -p, --precise              attempt run command in precise intervals
  -c, --clockwork            run command in precise intervals forcibly
  -t, --no-title             turn off header
  --shell                    shell (default "sh")
  --shell-options            additional shell options
  --unfold                   unfold command result
  --pty                      run on pty (experimental, not for Windows)

관련 정보