watch -g를 종료하게 만든 변경 사항을 보는 방법

watch -g를 종료하게 만든 변경 사항을 보는 방법

나는 watch -g명령의 출력을 모니터링하고 명령이 변경되자마자 종료하는 데 사용합니다. 문제는 종료하면 watch의 모든 UI 요소(모니터링 중인 명령의 출력 포함)가 사라진다는 것입니다. 시계가 종료되기 전에 출력에 어떤 일이 발생하는지 알고 싶습니다. 가능합니까?

답변1

watch -g "ls | tee -a log_file"

log_file명령의 출력을 얻게 됩니다 . ls예를 들면, 물론 자신만의 명령을 사용하거나 더 많은 명령이 있는 경우 아래 답변에 표시된 대로 괄호 안에 넣어야 합니다. ~에 귀속됨이 답변.

마지막 출력과 끝에서 두 번째 출력 간의 차이를 더 쉽게 식별할 수 있도록 빈 새 줄과 일부 마커를 추가할 수 있습니다.

watch -g "(echo; echo 'New output below:'; echo '------------------'; ls) | tee -a log_file"

답변2

watch를 사용하지 않으려는 경우 이를 시도해 보십시오. 명령이 실패할 때 최신 출력이 표시됩니다. 귀하의 명령으로 바꾸십시오 somecommand.

logFile='/var/log/somecommand.log'
somecommand &> $logFile &
expectedOutput=$(cat $logFile)
while true; do
  somecommand &> $logFile &
  actualOutput=$(cat $logFile)
  if [[ "$actualOutput" != "$expectedOutput" ]]; then
    echo "Process failed, here is the most recent output..."
    echo "$actualOutput"
    exit 1
  fi
  sleep 2
done

관련 정보