디렉토리를 복사할 때 쉘 스크립트에서 실행 중인 타이머를 표시할 수 있습니까?

디렉토리를 복사할 때 쉘 스크립트에서 실행 중인 타이머를 표시할 수 있습니까?

그래서 기본적으로 한 서버를 다른 서버에 백업하는 쉘 스크립트가 있습니다. 이 프로세스 동안 매우 큰 디렉터리(140GB)를 다른 위치에 복사해야 하며 쉘 스크립트에서 파일이 복사되는 동안 0:00부터 시작하는 실시간 스톱워치 유형 카운터를 실행하려고 합니다.

가능한?

편집 : 이것은아니요진행률 표시줄에 대한 아이디어 :) 고통이 끝날 때까지의 시간이 아니라 얼마나 많은 시간이 지났는지 확인할 수 있는 간단한 스톱워치 타이머입니다 :)

답변1

원하는 것을 수행하는 rsync -av --progress대신 사용하시겠습니까 ?cp

답변2

David Kings rsync 솔루션이 작동하지 않거나 bash에서 정말로 수행하고 싶은 경우(이유) 다음을 수행할 수 있습니다.

#!/bin/bash
your_command_to_execute &
myPid=$!
sleepTime=5
while kill -0 "$myPid" 2> /dev/null
do
    # Sleep for the defined time
    sleep $sleepTime
    # And print the time since the script started in seconds
    echo -en "Runtime $SECONDS\033[0K\r"
done

시간 형식을 더 잘 지정하기 위해 무언가를 사용하고 싶을 수도 있습니다.
현재 스크립트는 cp 작업이 시작된 이후의 초 수가 아닌 스크립트가 시작된 이후의 초 수도 인쇄합니다. (이 간단한 작업을 변경하려면 현재 값에서 루프 이전의 초 수를 뺍니다 $SECONDS.)

관련 정보