<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Помогите написать скрипт с использованием du и сложениями</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/8416.html</link>
    <description>Вообще-то он должен работать под Solaris 8, но я думаю синкансис не очень отличается - главное структура.&lt;br&gt;&lt;br&gt;Смысл вот в чём:&lt;br&gt;&lt;br&gt;есть 3 директории&lt;br&gt;dir1&lt;br&gt;dir2&lt;br&gt;dir3&lt;br&gt;в них куча поддиректорий, включая нужную нам директорию data&lt;br&gt;все директории data одинаковы, к примеру&lt;br&gt;&lt;br&gt;/dir1/data/orenburg&lt;br&gt;/dir1/data/saratov&lt;br&gt;/dir1/data/tallinn&lt;br&gt;&lt;br&gt;/dir2/data/orenburg&lt;br&gt;/dir2/data/saratov&lt;br&gt;/dir2/data/tallinn&lt;br&gt;&lt;br&gt;/dir3/data/orenburg&lt;br&gt;/dir3/data/saratov&lt;br&gt;/dir3/data/tallinn&lt;br&gt;&lt;br&gt;В реальности конечно директорий намного больше.&lt;br&gt;Необходимо написать скрипт, который бы считал общее занятое место в одноимённых конечных директориях, то есть&lt;br&gt;&lt;br&gt;orenburg 123G&lt;br&gt;saratov 65G&lt;br&gt;tallinn 227G&lt;br&gt;&lt;br&gt;Хотя идеально было бы вообще вот так&lt;br&gt;&lt;br&gt;orenburg 123G&lt;br&gt;dir1 50G&lt;br&gt;dir2 50G&lt;br&gt;dir3 23G&lt;br&gt;&lt;br&gt;saratov 65G&lt;br&gt;dir1 20G&lt;br&gt;dir2 20G&lt;br&gt;dir3 25G&lt;br&gt;&lt;br&gt;tallinn 227G&lt;br&gt;dir1 100G&lt;br&gt;dir2 100G&lt;br&gt;dir3 27G&lt;br&gt;&lt;br&gt;Не пойму как по отдельной директории вытаскивать и потом всё это складывать.&lt;br&gt;</description>

<item>
    <title>Помогите написать скрипт с использованием du и сложениями (Im27th)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/8416.html#18</link>
    <pubDate>Mon, 14 Sep 2009 10:07:15 GMT</pubDate>
    <description>&#091;b&#093;O! Какая хрень получилась&#091;/b&#093; &lt;br&gt;&lt;br&gt;find /bigsan0/data -maxdepth 1 -mindepth 1 -type d &amp;#124; cut -d/ -f4 &amp;gt; spisok.txt;&lt;br&gt;SUBDIR=&#096;find /bigsan0/data -maxdepth 1 -mindepth 1 -type d &amp;#124; cut -d/ -f4&#096;&lt;br&gt;j=&#096;cat spisok.txt &amp;#124; wc -l&#096;&lt;br&gt;i=1&lt;br&gt;for files in $&#123;SUBDIR&#125;/*&lt;br&gt;do&lt;br&gt;CURDIR=&#096;head -n $i spisok.txt &amp;#124; tail -1&#096;&lt;br&gt;echo &quot;Проект $CURDIR&quot;&lt;br&gt;du -k -s -c /bigsan*/data/$CURDIR &amp;gt; du$i.txt&lt;br&gt;ls -dlc /bigsan*/data/$CURDIR &amp;gt; ls$i.txt&lt;br&gt;cut -f2 du$i.txt &amp;gt; dir$i.txt&lt;br&gt;cut -b1-8 dir$i.txt &amp;gt; subdir$i.txt&lt;br&gt;cut -f1 du$i.txt &amp;gt; size$i.txt&lt;br&gt;cut -f7-10 -d&apos; &apos; ls$i.txt &amp;gt; date$i.txt&lt;br&gt;a=1&lt;br&gt;b=&#096;cat subdir$i.txt &amp;#124; wc -l&#096;&lt;br&gt;c=&#096;cut -b1-8 dir$i.txt&#096;&lt;br&gt;#for a in &#123;1,2,3,4&#125;&lt;br&gt;for word in $&#123;c&#125;&lt;br&gt;do&lt;br&gt;head -n $a subdir$i.txt  &amp;#124; tail -1 &amp;gt; onedir$a.txt&lt;br&gt;head -n $a size$i.txt  &amp;#124; tail -1 &amp;gt; onesize$a.txt&lt;br&gt;head -n $a date$i.txt  &amp;#124; tail -1 &amp;gt; onedate$a.txt&lt;br&gt;VIVOD=&#096;cat onedir$a.txt onesize$a.txt onedate$a.txt&#096;&lt;br&gt;echo $VIVOD&lt;br&gt;#echo $i&lt;br&gt;#echo $j&lt;br&gt;#echo $a&lt;br&gt;rm onedir$a.txt&lt;br&gt;rm onesize$a.txt&lt;br&gt;rm onedate$a.txt&lt;br&gt;a=&#096;expr $&#123;a&#125; + 1&#096;&lt;br&gt;done&lt;br&gt;echo&lt;br&gt;rm d</description>
</item>

<item>
    <title>Помогите написать скрипт с использованием du и сложениями (Im27th)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/8416.html#17</link>
    <pubDate>Fri, 04 Sep 2009 11:59:49 GMT</pubDate>
    <description>&#091;b&#093;O! Замутил!&#091;/b&#093;&lt;br&gt;&lt;br&gt;find /dir1/data -maxdepth 1 -mindepth 1 -type d &amp;#124; cut -d/ -f4 &amp;gt; spisok.txt;&lt;br&gt;j=&#096;cat spisok.txt &amp;#124; wc -l&#096;&lt;br&gt;i=1&lt;br&gt;a=1&lt;br&gt;for i in &#123;1,2,3&#125;&lt;br&gt;do&lt;br&gt;CURDIR=&#096;head -n $i spisok.txt &amp;#124; tail -1&#096;&lt;br&gt;echo &quot;Проект $CURDIR&quot;&lt;br&gt;du -k -s -c /dir*/data/$CURDIR &amp;gt; du$i.txt&lt;br&gt;ls -dlc /dir*/data/$CURDIR &amp;gt; ls$i.txt&lt;br&gt;cut -f2 du$i.txt &amp;gt; dir$i.txt&lt;br&gt;cut -b8-10 dir$i.txt &amp;gt; subdir$i.txt&lt;br&gt;cut -f1 du$i.txt &amp;gt; size$i.txt&lt;br&gt;cut -b29-44 ls$i.txt &amp;gt; date$i.txt&lt;br&gt;for a in &#123;1,2,3&#125;&lt;br&gt;do&lt;br&gt;head -n $a subdir$i.txt  &amp;#124; tail -1 &amp;gt; onedir$a.txt&lt;br&gt;head -n $a size$i.txt  &amp;#124; tail -1 &amp;gt; onesize$a.txt&lt;br&gt;head -n $a date$i.txt  &amp;#124; tail -1 &amp;gt; onedate$a.txt&lt;br&gt;VIVOD=&#096;cat onedir$a.txt onesize$a.txt onedate$a.txt&#096;&lt;br&gt;echo $VIVOD&lt;br&gt;rm onedir$a.txt&lt;br&gt;rm onesize$a.txt&lt;br&gt;rm onedate$a.txt&lt;br&gt;done&lt;br&gt;echo&lt;br&gt;rm du$i.txt&lt;br&gt;rm ls$i.txt&lt;br&gt;rm dir$i.txt&lt;br&gt;rm subdir$i.txt&lt;br&gt;rm size$i.txt&lt;br&gt;rm date$i.txt&lt;br&gt;done&lt;br&gt;rm spisok.txt&lt;br&gt;&lt;br&gt;&#091;b&#093;Только вот с циклом так и не разобрался. У меня ведь неизвестное и меняющееся количество поддиректорий.&#091;/b&#093;&lt;br&gt;</description>
</item>

<item>
    <title>Помогите написать скрипт с использованием du и сложениями (Im27th)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/8416.html#15</link>
    <pubDate>Fri, 04 Sep 2009 06:02:40 GMT</pubDate>
    <description>&amp;gt;Не нужно писать подсуммы с перестановками на shell, в Solaris для этого &lt;br&gt;&amp;gt;есть Perl. &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;du -s */* &amp;#124; perl -e &apos;while (&amp;lt;&amp;gt;) &#123; ($s,$d1, $d2) = split /&#091;&#092;s&#092;/&#093;+/; $size&#123;$d2&#125;&#123;$d1&#125; = $s; $size&#123;$d2&#125;&#123;&quot;&#092;rTOTAL&quot;&#125;+= $s; &#125; foreach $d2 (keys &#037;size) &#123; foreach $d1 (sort keys &#037;&#123;$size&#123;$d2&#125;&#125;) &#123;print &quot;&#092;t$d1 $d2 $size&#123;$d2&#125;&#123;$d1&#125;&#092;n&quot;;&#125;&#125;&apos;&lt;br&gt;&lt;br&gt;Perl - классно. Попробую разобраться.&lt;br&gt;А пока что вот что вышло (тестирую на CentOS):&lt;br&gt;&lt;br&gt;find /dir1/data -maxdepth 1 -mindepth 1 -type d &amp;#124; cut -d/ -f4 &amp;gt; 1.txt;&lt;br&gt;j=&#096;cat 1.txt &amp;#124; wc -l&#096;&lt;br&gt;i=1&lt;br&gt;for i in &#123;1,2,3&#125;&lt;br&gt;do&lt;br&gt;CURDIR=&#096;head -n $i 1.txt &amp;#124; tail -1&#096;&lt;br&gt;du -k -s -c /dir*/data/$CURDIR&lt;br&gt;done&lt;br&gt;&lt;br&gt;Теперь:&lt;br&gt;1. В Solaris нет maxdepth mindepth&lt;br&gt;2. В Solaris нет du -c&lt;br&gt;3. Не могу сделать нормальный цикл - как сделать, чтобы было не for i in &#123;1,2,3&#125; а for i и количество циклов раное j&lt;br&gt;&lt;br&gt;4. Пока разбираюсь с этим - следующим пунктом народу захотелось, чтобы ещё напротив каждого каталога стояла время последней его модификации.&lt;br&gt;Я понимаю, что надо что-то типа ls -lc, но как бы одну дату вытащ</description>
</item>

<item>
    <title>Помогите написать скрипт с использованием du и сложениями (ACCA)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/8416.html#13</link>
    <pubDate>Thu, 03 Sep 2009 20:04:43 GMT</pubDate>
    <description>Не нужно писать подсуммы с перестановками на shell, в Solaris для этого есть Perl.&lt;br&gt;&lt;br&gt;du -s */* &amp;#124; perl -e &apos;while (&amp;lt;&amp;gt;) &#123; ($s,$d1, $d2) = split /&#091;&#092;s&#092;/&#093;+/; $size&#123;$d2&#125;&#123;$d1&#125; = $s; $size&#123;$d2&#125;&#123;&quot;&#092;rTOTAL&quot;&#125;+= $s; &#125; foreach $d2 (keys &#037;size) &#123; foreach $d1 (sort keys &#037;&#123;$size&#123;$d2&#125;&#125;) &#123;print &quot;&#092;t$d1 $d2 $size&#123;$d2&#125;&#123;$d1&#125;&#092;n&quot;;&#125;&#125;&apos;&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Помогите написать скрипт с использованием du и сложениями (Im27th)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/8416.html#6</link>
    <pubDate>Wed, 02 Sep 2009 07:24:07 GMT</pubDate>
    <description>Думаете я извилины не нарягаю?&lt;br&gt;&lt;br&gt;Я пришёл на новую работу, а мне тут сразу и Oracle мониторить, и испытать как работает Solaris 8 в контейнере Solaris 10, и изучить lustre и samfs, и ещё скрипты писать - времени ваще нету и облажаться тоже не хочется.&lt;br&gt;&lt;br&gt;Поэтому и прошу помощи.&lt;br&gt;</description>
</item>

<item>
    <title>Помогите написать скрипт с использованием du и сложениями (akiri4)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/8416.html#5</link>
    <pubDate>Wed, 02 Sep 2009 06:36:44 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt;&amp;gt;&lt;br&gt;&amp;gt;&amp;gt;&lt;br&gt;&amp;gt;&amp;gt;По поводу подсчета: awk &apos;&#123;total +=$1&#125;; END &#123;print total&#125;&apos; &lt;br&gt;&amp;gt;&amp;gt;  (смотрит первое поле) &lt;br&gt;&amp;gt;&amp;gt;&lt;br&gt;&amp;gt;&amp;gt;Если что то не понятно, пиши попробуем разобраться, по крайней мере тебе &lt;br&gt;&amp;gt;&amp;gt;будет куда копать и что искать. &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;Уважаемый, дайте товарисчу хоть чуток напряч извилины. Он ведь даже попытки не &lt;br&gt;&amp;gt;сделал ) &lt;br&gt;&lt;br&gt;Да ладно тебе ;) я очень приблизительно написал. Будем считать, что это маленький намек, чтобы человек не потерял энтузиазм к решению проблемы )))&lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Помогите написать скрипт с использованием du и сложениями (Pahanivo)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/8416.html#4</link>
    <pubDate>Wed, 02 Sep 2009 06:27:34 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt;(директория поиска)        (шаблон поиска)  &lt;br&gt;&amp;gt;( -d глубина вложенности) &lt;br&gt;&amp;gt;-n1 echo &quot;dir1&quot; &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;По поводу подсчета: awk &apos;&#123;total +=$1&#125;; END &#123;print total&#125;&apos; &lt;br&gt;&amp;gt;  (смотрит первое поле) &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;Если что то не понятно, пиши попробуем разобраться, по крайней мере тебе &lt;br&gt;&amp;gt;будет куда копать и что искать. &lt;br&gt;&lt;br&gt;Уважаемый, дайте товарисчу хоть чуток напряч извилины. Он ведь даже попытки не сделал )&lt;br&gt;</description>
</item>

<item>
    <title>Помогите написать скрипт с использованием du и сложениями (akiri4)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/8416.html#3</link>
    <pubDate>Wed, 02 Sep 2009 06:25:55 GMT</pubDate>
    <description>&amp;gt;&amp;gt;Не пойму как по отдельной директории вытаскивать и потом всё это складывать.&lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;Возможно, что стоит вычислять размер в байтах -- их складывать и потом &lt;br&gt;&amp;gt;уже переводить в человеко-читаемую форму (или вовсе так и оставлять в &lt;br&gt;&amp;gt;байтах). &lt;br&gt;&lt;br&gt;Pahanivo, в общем то прав. Вот чуть детально (если я конечно правельно вас понял):&lt;br&gt;#!/bin/sh&lt;br&gt;find /usr/local/etc -type d -name &quot;rc.d&quot; -print  &amp;#124; du -d5 -h  &amp;#124; awk &apos;&#123;print $1&#125;&apos; &amp;#124; xargs &lt;br&gt;(директория поиска)        (шаблон поиска)  ( -d глубина вложенности)       &lt;br&gt;-n1 echo &quot;dir1&quot;&lt;br&gt;      &lt;br&gt;&lt;br&gt;По поводу подсчета: awk &apos;&#123;total +=$1&#125;; END &#123;print total&#125;&apos;&lt;br&gt;(смотрит первое поле)&lt;br&gt;&lt;br&gt;Если что то не понятно, пиши попробуем разобраться, по крайней мере тебе будет куда копать и что искать.&lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Помогите написать скрипт с использованием du и сложениями (Pahanivo)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/8416.html#2</link>
    <pubDate>Tue, 01 Sep 2009 10:25:50 GMT</pubDate>
    <description>man find, xargs, du, awk, csh&lt;br&gt;&lt;br&gt;</description>
</item>

</channel>
</rss>
