From a distance, most problems look simpler than they are :-)
If you're interested in copying a single file, then maybe dd already provides what you want? From dd --help:
Sending a USR1 signal to a running `dd' process makes it print I/O statistics to standard error and then resume copying.
$ dd if=/dev/zero of=/dev/null& pid=$! $ kill -USR1 $pid; sleep 1; kill $pid 18335302+0 records in 18335302+0 records out 9387674624 bytes (9.4 GB) copied, 34.6279 seconds, 271 MB/s
With that basis, a little wrapper script could do what you want.
From a distance, most problems look simpler than they are :-)
If you're interested in copying a single file, then maybe dd already provides
what you want? From dd --help:
Sending a USR1 signal to a running `dd' process makes it
print I/O statistics to standard error and then resume copying.
$ dd if=/dev/zero of=/dev/null& pid=$!
$ kill -USR1 $pid; sleep 1; kill $pid
18335302+0 records in
18335302+0 records out
9387674624 bytes (9.4 GB) copied, 34.6279 seconds, 271 MB/s
With that basis, a little wrapper script could do what you want.