Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
dd with progress??
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Portage & Programming
View previous topic :: View next topic  
Author Message
_______0
Guru
Guru


Joined: 15 Oct 2012
Posts: 521

PostPosted: Wed May 15, 2013 11:28 am    Post subject: dd with progress?? Reply with quote

hi,

it's unbelieveable that a program for such an important task has NO formal way of showing progress of the operation. Progress piece of code is widely used everywhere, should not be something hard to implement. Why dd doesn't have progress? dd's attitude is like 'it'll get done when it's done.", that doesn't help a lot. Everyone wants to know progress of a task completing.

How to use dd with a sane way of showing progress?

thanks.
Back to top
View user's profile Send private message
XavierMiller
Moderator
Moderator


Joined: 23 Jul 2004
Posts: 5566
Location: ~Brussels - Belgique

PostPosted: Wed May 15, 2013 11:30 am    Post subject: Reply with quote

man dd: send USR1 signal.

http://www.usr-share-man.org/man1/dd.html
_________________
Xavier Miller
(FR) Merci de respecter les règles du forum.
http://www.xaviermiller.be
Back to top
View user's profile Send private message
_______0
Guru
Guru


Joined: 15 Oct 2012
Posts: 521

PostPosted: Wed May 15, 2013 12:07 pm    Post subject: Reply with quote

Quote:
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


awfull!!
Back to top
View user's profile Send private message
XavierMiller
Moderator
Moderator


Joined: 23 Jul 2004
Posts: 5566
Location: ~Brussels - Belgique

PostPosted: Wed May 15, 2013 12:19 pm    Post subject: Reply with quote

dd is not a GUI tool.
_________________
Xavier Miller
(FR) Merci de respecter les règles du forum.
http://www.xaviermiller.be
Back to top
View user's profile Send private message
John R. Graham
Administrator
Administrator


Joined: 08 Mar 2005
Posts: 7838
Location: Somewhere over Atlanta, Georgia

PostPosted: Wed May 15, 2013 1:04 pm    Post subject: Reply with quote

_______0 wrote:
awfull!!
From your perspective, perhaps, but it's highly consistent with the Unix philosophy. Almost all basic tools are silent when nothing bad is happening.

- John
_________________
This space intentionally left blank.
Back to top
View user's profile Send private message
_______0
Guru
Guru


Joined: 15 Oct 2012
Posts: 521

PostPosted: Wed May 15, 2013 1:07 pm    Post subject: Reply with quote

I wasn't asking for GUI tool. dd progress implementation is bizarre and mighty dangerous.

Why not something like rsync? Every music player on earth has progress, torrents have progress, sites have progress. How hard could it be to include a sane, built-in, option to show progress?

I don't get dd's way. I am supposed to KILL the process and then RESUME just to see the progress?? That looks ass backwards.
Back to top
View user's profile Send private message
Naib
Advocate
Advocate


Joined: 21 May 2004
Posts: 4158
Location: Removed by Neddy

PostPosted: Wed May 15, 2013 1:18 pm    Post subject: Reply with quote

the command "kill" just sends a signal to a process, it doesn't actually mean it kills it.
You are not killing dd and then resuming it when you send -USR1 to the dd process, you are informing dd to indicate its progress

kill by default send signal 7 SIGHUP, there is then kill 1 and kill 2 and the nasty nasty kill 9 ( SIGKILL)

the dd method is quite good. it doesn't have to sit there servicing any term I/O, it just has to deal with disk I/O ONLY when it is request will it then inform of its proces
_________________
A free press is the unsleeping guardian of every other right that free men prize; it is the most dangerous foe of tyranny. Where men have the habit of liberty, the Press will continue to be the vigilant guardian of the rights of the ordinary citizen.
Back to top
View user's profile Send private message
yzh
n00b
n00b


Joined: 25 Feb 2011
Posts: 53

PostPosted: Wed May 15, 2013 1:53 pm    Post subject: Reply with quote

use pipeviewer/pv:

Code:

# pv test.bzImage | dd of=/tmp/test.img
12.9MiB 0:00:00 [ 106MiB/s] [============================================================================================================>] 100%           
26434+1 records in
26434+1 records out
13534560 bytes (14 MB) copied, 0.130814 s, 103 MB/s
Back to top
View user's profile Send private message
_______0
Guru
Guru


Joined: 15 Oct 2012
Posts: 521

PostPosted: Mon Oct 21, 2013 8:13 pm    Post subject: Reply with quote

yzh wrote:
use pipeviewer/pv:

Code:

# pv test.bzImage | dd of=/tmp/test.img
12.9MiB 0:00:00 [ 106MiB/s] [============================================================================================================>] 100%           
26434+1 records in
26434+1 records out
13534560 bytes (14 MB) copied, 0.130814 s, 103 MB/s


this one somehow did random chopping to the copy.

I've found one that takes the crown:

Code:
watch -n 60 killall -USR1 dd


much user-friendly that dd's own man pages suggestion:

Code:
$ dd if=/dev/zero of=/dev/null& pid=$!
$ kill -USR1 $pid; sleep 1; kill $pid
Back to top
View user's profile Send private message
kurly
Apprentice
Apprentice


Joined: 02 Apr 2012
Posts: 178

PostPosted: Mon Oct 21, 2013 8:56 pm    Post subject: Reply with quote

Inadvisable to use killall here. Linux is a multi-user OS, and there may be multiple instances of 'dd'. Saving off the PID (like in the man page) is the better way to handle this.
Back to top
View user's profile Send private message
Logicien
l33t
l33t


Joined: 16 Sep 2005
Posts: 841
Location: Montréal

PostPosted: Tue Oct 22, 2013 4:13 am    Post subject: Reply with quote

I am surprise that the command dcfldd have not been mention here. It show a basic progress status by default.
Code:
eix -sv dcfldd
* sys-apps/dcfldd
     Available versions:  1.3.4.1
     Best versions/slot:  1.3.4.1
     Homepage:            http://dcfldd.sourceforge.net/
     Find open bugs:      http://bugs.gentoo.org/buglist.cgi?quicksearch=sys-apps%2Fdcfldd
     Description:         enhanced dd with features for forensics and security
     License:             GPL-2

A lot of pipe utilities are available in portage too.
Code:
eix -cs pipe
[N] app-arch/zpipe (~2.01): Pipe compressor/decompressor for ZPAQ
[N] app-benchmarks/pipebench (0.40): Measures the speed of stdin/stdout communication
[N] app-crypt/aespipe (2.3e): Encrypts data from stdin to stdout
[N] app-misc/pipeworks (0.4): a small utility that measures throughput between stdin and stdout
[N] app-misc/tpipe (1.6): Command to duplicate standard input to more than one program
[I] dev-libs/libpipeline (1.2.3@22/09/2013): a pipeline manipulation library
[N] dev-ml/pipebang (~109.28.00(0/109.28.00)): Syntax extension to transform x |! f into f x
[N] dev-perl/IO-Pipely (~0.005.0): Portably create pipe() or pipe-like handles, one way or another.
[N] dev-python/django-pipeline (1.2.9): An asset packaging library for Django
[N] games-puzzle/pipepanic (0.1.3): A simple pipe connecting game
[N] games-puzzle/pipewalker (0.9.4): Rotating pieces puzzle game
[N] net-misc/datapipe (~1.0-r1): bind a local port and connect it to a remote socket
[N] net-misc/netpipe (~1.0.0_beta2-r1): tool to reliably distribute binary data using UDP broadcasting techniques
[N] net-misc/netpipes (4.2-r1): netpipes - a package to manipulate BSD TCP/IP stream sockets
[N] net-misc/pipes (~1.16.1): Very versatile TCP pipes
[N] net-proxy/piper (~1.14): Piper (a tool for manipulating SOCKS5 servers)
[N] sci-chemistry/xyza2pipe (~20101129): Cross conversion environment of NMR spectra
Found 17 matches.

_________________
Paul
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Portage & Programming All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum