SSH "watch" 명령을 사용하여 출력을 덮어쓰는 대신 강제로 추가할 수 있습니까?

SSH "watch" 명령을 사용하여 출력을 덮어쓰는 대신 강제로 추가할 수 있습니까?

퍼티를 통해 네트워크 통계를 보려고 하는데 매초 통계가 로그 파일에 기록되기를 원합니다. SSH 세션을 로그 파일에 기록하도록 퍼티를 구성했습니다. 그런데 통계를 추출하는 명령을 반복적으로 내리는 putty 명령을 내리는데 어려움을 겪고 있습니다.

나의 첫 번째 방법은 "watch" 명령을 사용하는 것이었습니다. 이는 매초마다 명령을 실행하는 데 효과적이지만 각 업데이트로 터미널 출력을 덮어쓰고 로그 파일에 기록이 표시되지 않습니다.

내 질문: 줄을 반복적으로 덮어쓰는 대신 세션 출력을 추가하도록 watch 명령을 어떻게 구성합니까?

답변1

시계 유틸리티저주를 사용하여 화면 초기화 및 새로 고침, 그래서 나는 당신이 현재에 맞서 수영하고 덮어쓰는 대신 추가하도록 노력하고 있다고 생각합니다. 대신 무한 쉘 루프를 사용하는 것이 좋습니다.

while :
do
  ss -s     ## for example
  sleep 60  ## for example
done

원하는 간격으로 원하는 통계를 롤링/추가 방식으로 출력하며, watch이와 같이 Ctrl-C를 눌러 중단할 수도 있습니다.

물론아니요차이점 강조, 명령 제목 제공, 다양한 조건에서 종료 등 시계의 모든 기능을 제공합니다. 테스트 명령을 수동으로 실행하거나 루프 외부에 명령의 반환 코드에 대한 테스트를 추가하여 break이러한 문제 중 일부를 해결할 수 있습니다.

답변2

간단한 쉘 스크립트를 사용하여 명령을 반복해서 실행하고 출력을 파일에 쓰는 것은 어떻습니까? 이 같은:

#!/usr/bin/env bash
while true;
do
 free >> file.txt
 sleep 2
done

freeLinux 시스템에서 여유 RAM을 출력하는 명령입니다. 실행 명령을 사용하여 변경하십시오. >>출력은 에 추가됩니다 . file.txt필요한 경우 sleep이 옵션을 n초로 변경할 수 있습니다.

참고: 이 스크립트는 무기한 실행되며 로그가 충분하면 중지해야 합니다(CTRL+C).

관련 정보