사용된 디스크 공간의 양을 계산합니다.

사용된 디스크 공간의 양을 계산합니다.

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

관련 정보