대용량 파일에 대한 해시 확인을 시작했는데 를 사용하고 싶지 않습니다 . 명령을 호출하기 전에 time
시간으로 시작하거나 시간을 사용하지 않고 벽시계 시간을 얻으려면 어떻게 해야 합니까 ?date
답변1
실행 중인 프로세스의 경우 다음을 수행할 수 있습니다.
PID=5462
command ps -p "$PID" -o etime
command ps -p "$PID" --no-headers -o etime
일반적인 기능으로 쉘 프롬프트를 수정할 수 있습니다. 이것은 내 bash 프롬프트 정의입니다.
TERM_RED_START=$'\033[1m\033[31m'
TERM_RED_END=$'\033(B\033[m'
PS1='\nec:$(ec=$?; if [ 0 -eq $ec ];
then printf %-3d $ec;
else echo -n "$TERM_RED_START"; printf %-3d $ec; echo "$TERM_RED_END";
fi) \t \u@\h:\w\nstart cmd:> '
PS2="cont. cmd:> "
당신과 관련된 부분은 \t
지금입니다.
그러나 그것이 모든 문제를 해결하는 것은 아닙니다. 프로세스가 끝나면 새로운 프롬프트가 표시되지만 측정할 명령이 시작될 때쯤에는 이전 프롬프트가 꽤 오래되었을 수 있습니다. 따라서 장기 실행 명령을 시작하기 전에 프롬프트를 업데이트하는 것을 기억하거나 현재 프로세스에 소요되는 시간을 알고 싶을 때 현재 시간을 기억해야 합니다.
완전한 솔루션을 위해서는 감사 기능(프로세스의 시작 및 종료 시간 기록)이 필요합니다. 하지만 셸에만 국한할 수 없다면 엄청난 양의 데이터가 발생할 수 있습니다.
답변2
허용된 답변을 바탕으로 다음을 사용하여 실행 중인 프로세스의 경과 시간을 지속적으로 모니터링할 수도 있습니다 watch
.
PID=5462
watch command ps -p "$PID" -o etime