![타이밍이 있는 dd 스크립트](https://linux55.com/image/101072/%ED%83%80%EC%9D%B4%EB%B0%8D%EC%9D%B4%20%EC%9E%88%EB%8A%94%20dd%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8.png)
다음을 수행하는 스크립트를 작성하는 가장 좋은 방법을 찾으려고 노력 중입니다.
- dd를 사용하여 10GB 파일을 만들고, 완료되면 파일을 삭제하고, 25회 반복하거나, 스크립트가 종료되기 전에 Ctrl+C를 입력하는 루프 스크립트를 만듭니다.
- 각 작업(예: dd, rm)이 끝나면 dd와 rm이 얼마나 오래 걸렸는지 정확히 알 수 있도록 시간을 측정합니다.
지금까지 나는 다음 사항에 대해 생각하고 있습니다.
for i in {1..25}
do
time sh -c "dd if=/dev/zero of=/user/home/test.img bs=10G count=1" >> /tmp/dd_timed.txt && time sh -c "rm -f /user/home/test.img" >> rm_timed.txt
done
누구든지 더 나은 솔루션을 가지고 있거나 약간 조정할 수 있습니까?
답변1
좋습니다. 이것이 이 작업을 수행하는 방법인 것 같습니다. 거칠어 보이지만 작동합니다.
#!/bin/bash
for i in {1..25}
do
{ time dd if=/dev/zero of=/home/user/test.img bs=1G count=10 oflag=direct >& / dev/null ; } 2>> /tmp/dd_timed.txt && { time rm /home/user/test.img >& /dev/null ; } 2>> /tmp/rm_timed.txt
done
답변2
소요 시간을 비교하는 것도 흥미로울 수 있습니다.
time ( dd if=/dev/zero of=/tmp/test.img bs=1M count=1024; sync )
그리고
time ( dd if=/dev/zero of=/tmp/test.img bs=1M count=1024 oflag=direct;sync )
sync
대상 장치에 쓰기를 완료하는 데 걸리는 시간을 측정하려면 이를 포함해야 합니다 .
oflag=direct
내 메인 컴퓨터에서는 /tmp
SATA SSD(내가 있는 곳)에 쓸 때 속도가 [15-20%] 더 빠릅니다.
그러나 문제가 발생할 수 있습니다 oflag=direct
. 아래 링크를 참조하세요.