sftp progress showing ... 66% complete

Robert Body rbody99@hotmail.com
Sat Dec 10 21:02:00 GMT 2005


Thanks for the input, Brian, I was trying to have the script re-direct 
output to a file (well actually just the final command of _time_ command was 
what mattered), but I guess that meant the sftp progress % went to a file 
too, but strange thing is, the other Stdout messages like "Uploading..." and 
"chdir" went to screen normally.

So I got rid of of my   2>&1 and tee  in my 3 files deep script call, and I 
did this:

start=`perl -e "print time;"`
$mycommand
end=`perl -e "print time;"`
perl -e "\$alpha=($end-$start); print \$alpha.\"s\";" > $tempFileTime   # 
end time - start time

I don't know how to handle X-Y in shell itself (nor how to get clock-ticks 
since 1970/1/1), so i just send it to Perl and have it get clock-ticks at 
start, at the end and I get the difference, and that's like the output from 
_time_ (measuring how long $mycommand took)  and this way by including 
"progress" in the input file to   sftp   i get to see the progress 
%percentage during transfer :-)

-Robert


>From: Brian Dessent <brian@dessent.net>
>Reply-To: cygwin@cygwin.com
>To: cygwin@cygwin.com
>Subject: Re: sftp progress showing ... 66% complete
>Date: Sat, 10 Dec 2005 01:33:50 -0800
>
>Robert Body wrote:
>
> > ok it appears my problem is with my script, not sftp:
> >
> > specifically with using tee or > in the command: (time $mycommand) 2>&1 
>|
> > tee $tempFile
>
>The sftp program, like many others (e.g. scp) will only output status
>information if stdout is a tty.  When you redirect to a file this is not
>the case.  The reason it does this is that interactive progress meters
>like those used by most file transfer programs will look like gibberish
>when redirected to a file, because they usually print repeated status
>update lines every few seconds, using carriage returns to overwrite the
>prior output without advancing a row on the screen.
>
>You can get around this by using something like the 'script' utility,
>which will provide a pseudoterminal (pty) to the program so that it
>thinks it's being run interactively, but the output in fact goes to a
>file.  However if you look at this output with something like 'less' it
>will probably look like garbage because of all these repeated lines.
>Again, these programs are not intended to log their interactive outputs
>to a file, so if you do this you will probably have to process the
>output in some way if you want something readable.  However, if you
>simply 'cat' the output to a terminal it will look perfectly normal
>since in effect you are just playing back all these terminal sequences
>in fast-forward.
>
>Brian
>
>--
>Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
>Problem reports:       http://cygwin.com/problems.html
>Documentation:         http://cygwin.com/docs.html
>FAQ:                   http://cygwin.com/faq/
>



--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/



More information about the Cygwin mailing list