1초마다 프로세스를 모니터링하고 출력을 파일로 보냅니다.

1초마다 프로세스를 모니터링하고 출력을 파일로 보냅니다.

FTP 클라이언트와 서버 간의 파일 전송을 분석해야 하는 작업이 있습니다.

나는 htop명령을 알고 있습니다.

파일 전송에 15초가 걸리는 경우 htop파일 전송이 완료될 때까지 매초마다 명령을 실행하고 프로세스를 분석할 수 있도록 출력을 파일로 전달하고 싶습니다. 하지만 htop초당 실행될 수 있는 메서드 는 생각나지 않습니다 .

또한 명령으로 인쇄된 출력은 htop사람이 읽을 수 있는 형식이 아닙니다.

답변1

먼저, 원하는 정보를 얻는 더 쉬운 방법이 없는지 확인하세요. 더 잘 작동할 수 있는 다른 도구도 많이 있지만 htop은 파일에 잘 액세스하지 못합니다. 바라보다:https://stackoverflow.com/questions/17534591/htop-output-to-human-reader-file여기에 함께 있는 부분이 있지만:https://askubuntu.com/questions/726333/how-to-save-htop-output-to-file뭔가를 찾을 수 없다면.

htop에 제거할 수 없는 것이 있거나 ps명령줄 출력 및 구문 분석을 위해 설계된 다른 도구가 있습니까?

그런 다음 다음과 같은 스크립트를 작성하십시오(테스트되지 않음).

#!/bin/bash

my_log="ftp_$(date +%Y%m%d%H%M%S).log"
$(command to start the ftp 2>&1 >> "$my_log")& 

my_pid="$!"
sleep 15
still_there=1
while [[ $still_there -gt 0 ]]
do
    if [[ $(ps ax | grep $my_pid | grep -v grep) ]] # If your PID is still in the process table
    then
        # Insert monitoring stuff in here that > to $my_log
        still_there=1
    else
        still_there=0
    fi
    sleep 1
done

관련 정보