The simplest way to look at the progress of a running gzip process is to simply look at the file size of the written file, potentially in combination with
watch if you want real time updates. If you are dealing with partitions that is of course not easily possible.
An alternative to estimate the progress is to use
iotop will show you the speed at which data is written to the disk by every process on the system, your
gzip process will likely show up on top and give you the amount of data processed per second. Then simply multiply the MB/sec with how long the process has been running (see
ps auxw START column) and you will get a rough idea how long it will take.
As for further backup runs: Use
rsync when you want to copy data from one computer on a network to another.
rsync handles compression and deltas, thus you only have to transfer the data that you don't already have, which makes it very fast for regular updates. rsync also has the
--backup-dir options that can be used to create not just copies, but proper backups that keep track of deleted files.
And when doing diskimages
partimage is a good alternative to
dd, as unlike
partimage is file system aware and will only copy blocks actually used by the file system, not empty unused blocks, it is thus able to create much smaller disk images on mostly empty file systems. But it's not a good tool for backup over a network either, use