<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Консольные хитрости</title>
	<atom:link href="http://boombick.org/blog/posts/90/feed" rel="self" type="application/rss+xml" />
	<link>http://boombick.org/blog/posts/90</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Sun, 15 Aug 2010 21:13:08 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
	<item>
		<title>By: Damon</title>
		<link>http://boombick.org/blog/posts/90#comment-26113</link>
		<dc:creator>Damon</dc:creator>
		<pubDate>Wed, 10 Mar 2010 08:46:50 +0000</pubDate>
		<guid isPermaLink="false">http://boombick.org/blog/posts/90#comment-26113</guid>
		<description>boombick, без вопросов.
progress(), все равно не моя ф-ция, а остальное тривиально, вобщем-то. :-)</description>
		<content:encoded><![CDATA[<p>boombick, без вопросов.<br />
progress(), все равно не моя ф-ция, а остальное тривиально, вобщем-то. :-)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: boombick</title>
		<link>http://boombick.org/blog/posts/90#comment-26069</link>
		<dc:creator>boombick</dc:creator>
		<pubDate>Tue, 09 Mar 2010 19:30:22 +0000</pubDate>
		<guid isPermaLink="false">http://boombick.org/blog/posts/90#comment-26069</guid>
		<description>Damon, ого, фундаментально! :)
Я готовлю очередной пост примерно на эту же тематику, вы позволите использовать ваши наработки?</description>
		<content:encoded><![CDATA[<p>Damon, ого, фундаментально! :)<br />
Я готовлю очередной пост примерно на эту же тематику, вы позволите использовать ваши наработки?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: cmp@nml.ru</title>
		<link>http://boombick.org/blog/posts/90#comment-26066</link>
		<dc:creator>cmp@nml.ru</dc:creator>
		<pubDate>Tue, 09 Mar 2010 18:28:57 +0000</pubDate>
		<guid isPermaLink="false">http://boombick.org/blog/posts/90#comment-26066</guid>
		<description>Черт, дополнительный ввывод промежуточных данных замедляет процесс, и при определенных условиях очень сильно, поэтому только dd при больших объемах, пока копирует покурить, а если уже не лезет killall -USR1 dd, может и на кофе времени хватит.</description>
		<content:encoded><![CDATA[<p>Черт, дополнительный ввывод промежуточных данных замедляет процесс, и при определенных условиях очень сильно, поэтому только dd при больших объемах, пока копирует покурить, а если уже не лезет killall -USR1 dd, может и на кофе времени хватит.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Damon</title>
		<link>http://boombick.org/blog/posts/90#comment-26062</link>
		<dc:creator>Damon</dc:creator>
		<pubDate>Tue, 09 Mar 2010 15:48:53 +0000</pubDate>
		<guid isPermaLink="false">http://boombick.org/blog/posts/90#comment-26062</guid>
		<description>Пример работы:
bash-3.1$ ./backup.sh

+--------------------------------------+
&#124;  Create backup: 2010.03.09_18.44.02  &#124;
+--------------------------------------+

+++++[          ACE_TAO        ]+++++
[##################################################] 100% (14/14)

+++++[           COBRA         ]+++++
[######--------------------------------------------] 13% (6/46)
^C
bash-3.1$</description>
		<content:encoded><![CDATA[<p>Пример работы:<br />
bash-3.1$ ./backup.sh</p>
<p>+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;+<br />
|  Create backup: 2010.03.09_18.44.02  |<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;+</p>
<p>+++++[          ACE_TAO        ]+++++<br />
[##################################################] 100% (14/14)</p>
<p>+++++[           COBRA         ]+++++<br />
[######--------------------------------------------] 13% (6/46)<br />
^C<br />
bash-3.1$</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Damon</title>
		<link>http://boombick.org/blog/posts/90#comment-26061</link>
		<dc:creator>Damon</dc:creator>
		<pubDate>Tue, 09 Mar 2010 15:46:30 +0000</pubDate>
		<guid isPermaLink="false">http://boombick.org/blog/posts/90#comment-26061</guid>
		<description>2adw0rd
Когда-то шляясь по вэбу нашел интересный вариант прогрессбара на чистом шелле. К сожалению не помню уже источник...

#!/bin/sh

# usage: progress  
#PB_NOPERC=1     # если определена, не выводятся проценты
#PB_NOITEM=1     # если определена, не выводится текущее_положение/максимум

progress()
{
    local width=50
    local max=$1 curr=$2 pos=$width perc=100
    if [ $curr -lt $max ]; then
            pos=$((curr*width/max))
            perc=$((curr*100/max))
    fi
    local str=&quot;\r[$(printf &quot;%${pos}s&quot; \
            &#124; sed &#039;s/ /#/g&#039;)$(printf &quot;%$((width-$pos))s&quot; \
            &#124; sed &#039;s/ /-/g&#039;)]&quot;
    [ -z &quot;$PB_NOPERC&quot; ] &amp;&amp; str=&quot;$str $perc%&quot;
    [ -z &quot;$PB_NOITEM&quot; ] &amp;&amp; str=&quot;$str ($curr/$max)&quot;
    echo -ne $str 1&gt;&amp;2
    [ $perc -eq 100 ] &amp;&amp; echo
}

Для себя реализовал на нем простейший скрипт для бэкапа некоторых директорий (дописать после progress() ):

title()
{
    LEN=`echo $1 &#124; wc -c`
    [ $(($LEN%2)) -eq 0 ] &amp;&amp; ((LEN++))
    POS=$(( (25-$LEN)/2 + $LEN ))
    printf &quot;+++++[%${POS}s&quot; $1
    printf &quot;%$(($POS-$LEN))s]+++++\n&quot; &quot; &quot;
}

NOW=`date +%Y.%m.%d_%H.%M.%S`; echo -ne &quot;33[1;34m&quot;; echo ; echo +--------------------------------------+; echo &quot;&#124;  Create backup: $NOW  &#124;&quot;; echo +--------------------------------------+; echo -ne &quot;33[m&quot;; ls -l &#124; grep &#039;^d&#039; &#124; grep -v &#039;\-=backup=-&#039; &#124; sed &#039;s/^.* \([^ ]\+\)$/\1/&#039; &#124; while read i; do echo ; title $i; ALL=`find $i &#124; wc -l`; MAXCOUNT=$((ALL/100)); if [ $MAXCOUNT -eq 0 ]; then  MAXCOUNT=1; fi; mkdir -p -- -=backup=-/$NOW; ( cd -- -=backup=-/$NOW; title $i &gt;&gt;-=log=-; tar -cvjf $i.tar.bz2 ../../$i 2&gt;&gt;-=log=- &#124; while read j; do COUNT=$((COUNT+1)); if [ $(($COUNT%$MAXCOUNT)) - eq 0 ] &#124;&#124; [ $ALL -eq $COUNT ]; then  progress $ALL $COUNT; fi; done ); done

Когда-то, ради прикола накатал его в одну строчку, теперь разбираться не охота, как он работает. Но в двух словах -- подсчитывается общее кол-во файлов и поддиректорий и по мере вывода имен пакуемых файлов tar&#039;ом, декрементируется и передается progress&#039;у.

PS: Я это к тому, что в UNIX&#039;е можно обойтись и более простыми средствами, не обязательно под каждый чих выкачивать и собирать что-то бинарное... :-)</description>
		<content:encoded><![CDATA[<p>2adw0rd<br />
Когда-то шляясь по вэбу нашел интересный вариант прогрессбара на чистом шелле. К сожалению не помню уже источник&#8230;</p>
<p>#!/bin/sh</p>
<p># usage: progress<br />
#PB_NOPERC=1     # если определена, не выводятся проценты<br />
#PB_NOITEM=1     # если определена, не выводится текущее_положение/максимум</p>
<p>progress()<br />
{<br />
    local width=50<br />
    local max=$1 curr=$2 pos=$width perc=100<br />
    if [ $curr -lt $max ]; then<br />
            pos=$((curr*width/max))<br />
            perc=$((curr*100/max))<br />
    fi<br />
    local str=&#8221;\r[$(printf "%${pos}s" \<br />
            | sed 's/ /#/g')$(printf "%$((width-$pos))s" \<br />
            | sed 's/ /-/g')]&#8221;<br />
    [ -z "$PB_NOPERC" ] &amp;&amp; str=&#8221;$str $perc%&#8221;<br />
    [ -z "$PB_NOITEM" ] &amp;&amp; str=&#8221;$str ($curr/$max)&#8221;<br />
    echo -ne $str 1&gt;&amp;2<br />
    [ $perc -eq 100 ] &amp;&amp; echo<br />
}</p>
<p>Для себя реализовал на нем простейший скрипт для бэкапа некоторых директорий (дописать после progress() ):</p>
<p>title()<br />
{<br />
    LEN=`echo $1 | wc -c`<br />
    [ $(($LEN%2)) -eq 0 ] &amp;&amp; ((LEN++))<br />
    POS=$(( (25-$LEN)/2 + $LEN ))<br />
    printf &#8220;+++++[%${POS}s" $1<br />
    printf "%$(($POS-$LEN))s]+++++\n&#8221; &#8221; &#8221;<br />
}</p>
<p>NOW=`date +%Y.%m.%d_%H.%M.%S`; echo -ne &#8220;33[1;34m"; echo ; echo +--------------------------------------+; echo "|  Create backup: $NOW  |"; echo +--------------------------------------+; echo -ne "33[m"; ls -l | grep '^d' | grep -v '\-=backup=-' | sed 's/^.* \([^ ]\+\)$/\1/&#8217; | while read i; do echo ; title $i; ALL=`find $i | wc -l`; MAXCOUNT=$((ALL/100)); if [ $MAXCOUNT -eq 0 ]; then  MAXCOUNT=1; fi; mkdir -p &#8212; -=backup=-/$NOW; ( cd &#8212; -=backup=-/$NOW; title $i &gt;&gt;-=log=-; tar -cvjf $i.tar.bz2 ../../$i 2&gt;&gt;-=log=- | while read j; do COUNT=$((COUNT+1)); if [ $(($COUNT%$MAXCOUNT)) - eq 0 ] || [ $ALL -eq $COUNT ]; then  progress $ALL $COUNT; fi; done ); done</p>
<p>Когда-то, ради прикола накатал его в одну строчку, теперь разбираться не охота, как он работает. Но в двух словах &#8212; подсчитывается общее кол-во файлов и поддиректорий и по мере вывода имен пакуемых файлов tar&#8217;ом, декрементируется и передается progress&#8217;у.</p>
<p>PS: Я это к тому, что в UNIX&#8217;е можно обойтись и более простыми средствами, не обязательно под каждый чих выкачивать и собирать что-то бинарное&#8230; :-)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: HomeCreate</title>
		<link>http://boombick.org/blog/posts/90#comment-25822</link>
		<dc:creator>HomeCreate</dc:creator>
		<pubDate>Sat, 06 Mar 2010 10:52:00 +0000</pubDate>
		<guid isPermaLink="false">http://boombick.org/blog/posts/90#comment-25822</guid>
		<description>По поводу первого:

use pv, Luk!</description>
		<content:encoded><![CDATA[<p>По поводу первого:</p>
<p>use pv, Luk!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alazavar @ Израиль</title>
		<link>http://boombick.org/blog/posts/90#comment-25765</link>
		<dc:creator>Alazavar @ Израиль</dc:creator>
		<pubDate>Fri, 05 Mar 2010 11:38:08 +0000</pubDate>
		<guid isPermaLink="false">http://boombick.org/blog/posts/90#comment-25765</guid>
		<description>Согласен с Flycat... Сижу красный как рак... Стыдно...Ну еще бы - не додуматься до такой простой вещи! Хотя может я это знал да забыл))</description>
		<content:encoded><![CDATA[<p>Согласен с Flycat&#8230; Сижу красный как рак&#8230; Стыдно&#8230;Ну еще бы &#8211; не додуматься до такой простой вещи! Хотя может я это знал да забыл))</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: boombick</title>
		<link>http://boombick.org/blog/posts/90#comment-25669</link>
		<dc:creator>boombick</dc:creator>
		<pubDate>Thu, 04 Mar 2010 08:16:52 +0000</pubDate>
		<guid isPermaLink="false">http://boombick.org/blog/posts/90#comment-25669</guid>
		<description>2adw0rd
Спасибо, любопытно :)</description>
		<content:encoded><![CDATA[<p>2adw0rd<br />
Спасибо, любопытно :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: adw0rd</title>
		<link>http://boombick.org/blog/posts/90#comment-25547</link>
		<dc:creator>adw0rd</dc:creator>
		<pubDate>Tue, 02 Mar 2010 07:51:45 +0000</pubDate>
		<guid isPermaLink="false">http://boombick.org/blog/posts/90#comment-25547</guid>
		<description>Спасибо, кое что возьму себе на вооружение.
А по поводу прогресс-баров, вы не юзал отдельные утилиты для этих целей? Что-то типа http://www.theiling.de/projects/bar.html</description>
		<content:encoded><![CDATA[<p>Спасибо, кое что возьму себе на вооружение.<br />
А по поводу прогресс-баров, вы не юзал отдельные утилиты для этих целей? Что-то типа <a href="http://www.theiling.de/projects/bar.html" rel="nofollow">http://www.theiling.de/projects/bar.html</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: tux</title>
		<link>http://boombick.org/blog/posts/90#comment-25500</link>
		<dc:creator>tux</dc:creator>
		<pubDate>Mon, 01 Mar 2010 09:51:15 +0000</pubDate>
		<guid isPermaLink="false">http://boombick.org/blog/posts/90#comment-25500</guid>
		<description>ops все исправил, извините за пост выше )</description>
		<content:encoded><![CDATA[<p>ops все исправил, извините за пост выше )</p>
]]></content:encoded>
	</item>
</channel>
</rss>
