시간에 따른 숫자의 변화율 계산

시간에 따른 숫자의 변화율 계산

파일을 처리하는 프로그램이 있습니다. ls | wc를 사용하면 다음과 같이 파일 수가 줄어드는 것을 확인할 수 있습니다.

ubuntu@h:/home/user/data/013176$ ls -1 | wc
3245666 29210987 246670579
ubuntu@h:/home/user/data/013176$ ls -1 | wc
2768811 24919292 210429599
ubuntu@h:/home/user/data/013176$ ls -1 | wc
2662466 23962187 202347379

시간이 지남에 따라 다음과 같은 내용을 볼 수 있도록 파일의 사용률을 계산할 수 있는 도구가 있는지 궁금합니다.

Current File Count: 2662466 rate = 5.6/s

현재 횟수와 속도를 기준으로 완료 시간을 예측할 수 있으면 더 좋을 것입니다.

답변1

매우 간단한 개념 증명으로 필요한 작업을 수행할 수 있습니다.

#!/bin/bash

initial_state=$(ls -1 | wc -l)
sleep 1
current_state=$(ls -1 | wc -l)
rate=$(echo $initial_state - $current_state | bc)
eta=$(echo $current_state / $rate | bc)

echo "Current file count: $current_state rate = $rate /s"
echo "Aprox. time to completion: $eta"

이는 실행 중인 디렉터리의 초기 상태를 읽은 다음 (대략) 1초 후에 다시 확인한 다음 초당 출력 변경 비율을 제공합니다. 거기에서 근사치를 계산하는 것은 간단합니다. 완전한 시간.

편집: 매우 간단하고 대략적인 완료 시간이 추가되었습니다.

편집: 실시간 업데이트를 얻으려면 스크립트에 간단한 while 루프를 추가할 수 있지만 그렇게 하면 실행 중인 터미널이 잠깁니다.

관련 정보