I keep Googling this, when really I should have committed it to memory by now. It’s extremely useful when cloning hard drives, which takes a long time with modern disks (a 160gb hard drive takes about an hour over eSATA @ ~50MB/s).
Anyway while there are more efficient methods, dd is simple and it works.
So given the following dd command:
dd if=/dev/sda of=/dev/sdb bs=32M
We can find out the pid (process ID) with the following command:
ps ax | grep dd
Which in my case gives:
12147 tty2 R+ 6:17 dd if /dev/sda of /dev/sdb bs 32M
i.e. 12147.
To get dd to output the stats, we send it a SIGUSR1 signal:
kill -SIGUSR1 12147
Resulting in:
3205+0 records in
3204+0 records out
107508400128 bytes (108 GB) copied, 2111.05 s, 50.9 MB/s
I should thank the author of the following link, it’s the result I get whenever I google this:
http://prefetch.net/blog/index.php/2006/06/11/printing-dd-status/