
Linux에는 프로그램이 생성하는 데이터의 양을 계산할 수 있는 프로그램이 있습니까?
예를 들어, MySQL 데이터베이스를 백업하고 싶다면 일반적으로 이렇게 합니다.
mysqldump > dumpfile.sql
대신 다음과 같이 리디렉션하고 싶지만 /dev/null
사용된 디스크 공간의 양을 계산합니다.
mysqldump | fancy_space_calc_program
산출:
123456789 Bytes would have been used
참고로, MySQL 백업은 단지 예시일 뿐입니다. 크기를 미리 예측할 수 있는 방법을 잘 알고 있으므로 이에 대한 의견은 삼가해 주시기 바랍니다.
답변1
에서 가져옴https://stackoverflow.com/questions/13418688/use-pipe-with-du-to-compute-size-of-stdin
wc -c
파이프라인을 통과하는 바이트 수를 계산하기 위해 파이프할 수 있습니다 .
물론 이것은 단지 원시 바이트일 뿐이며 섹터 크기 등과는 아무런 관련이 없으므로 가볍게 받아들이십시오...
답변2
pv 명령은 이에 적합합니다.
mysqldump | pv -b > /dev/null
위의 내용이 원하는 올바른 명령을 제공할 것이라고 생각합니다. pv -b | > /dev/null
지금은 테스트할 수 없는 등 약간의 조정이 필요할 수 있습니다.
-b
바이트 단위로 값을 제공합니다.
답변3
dd
다음과 같이 사용할 수 있습니다 cat /dev/zero | dd status=progress of=/dev/null bs=4M
.
이는 실행 중과 실행 후에 전달된 데이터 양에 대한 다음과 같은 일부 데이터를 제공합니다.
$ cat /dev/zero | dd status=progress of=/dev/null
5371334656 bytes (5.4 GB, 5.0 GiB) copied, 4 s, 1.3 GB/s^C # this is progress data
12271136+0 records in #summary
12271135+0 records out #summary
6282821120 bytes (6.3 GB, 5.9 GiB) copied, 4.66683 s, 1.3 GB/s #summary