<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Помогите решить задачку</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9870.html</link>
    <description>Всех приветствую!&lt;br&gt;Условие:&lt;br&gt;есть некоторое количество файлов в директории /tmp/src_dir:&lt;br&gt;file1&lt;br&gt;file2&lt;br&gt;file3&lt;br&gt;...&lt;br&gt;ежедневно эти файли копирутся в директорию /tmp/dst_dir и в имя файла добавляется дата копирования файла в формате YYYY-MM-DD:&lt;br&gt;...&lt;br&gt;file1-2014-06-10&lt;br&gt;file2-2014-06-10&lt;br&gt;file3-2014-06-10&lt;br&gt;...&lt;br&gt;Задача:&lt;br&gt;написать на Perl скрипт, который при запуске будет проверять был ли скопирован файл в /tmp/dst_dir за менувшие сутки. &lt;br&gt;Например, сегодня 2014-06-23, значит для каждого файла, который существует в /tmp/src_dir должен быть файл, который находиться в /tmp/dst_dir/:&lt;br&gt;file1-2014-06-22&lt;br&gt;file2-2014-06-22&lt;br&gt;file3-2014-06-22&lt;br&gt;Если какой-то файл&#092;файлы не был скопирован, то на вывод скрипт должен выдать имя отстутвующего файла&#092;файлов.&lt;br&gt;Важный нюанс:&lt;br&gt;функцию opendir() использовать нельзя. Состав обеих директорий можно получить только с помощью команды ls. &lt;br&gt;Т.е, как я понимаю, нужно присвоить массиву что-то типа:&lt;br&gt;my &#064;src_dir=&#096;ls /tmp/src_dir&#096;&lt;br&gt;&lt;br&gt;&lt;br&gt;Даже не знаю с какой стороны подойти к этой задаче. Буду благ</description>

<item>
    <title>Помогите решить задачку (johny69)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9870.html#11</link>
    <pubDate>Tue, 24 Jun 2014 14:05:00 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt; data=$(date -v -1d &quot;+&#037;F&quot;) &lt;br&gt;&amp;gt; mkdir /tmp/src_dir &lt;br&gt;&amp;gt; mkdir /tmp/dst_dir &lt;br&gt;&amp;gt; touch /tmp/src_dir/01 /tmp/src_dir/02 /tmp/src_dir/03 /tmp/src_dir/04 /tmp/src_dir/05 &lt;br&gt;&amp;gt; cp /tmp/src_dir/01 /tmp/dst_dir/01-$data &lt;br&gt;&amp;gt; cp /tmp/src_dir/02 /tmp/dst_dir/02-$data &lt;br&gt;&amp;gt; cp /tmp/src_dir/05 /tmp/dst_dir/05-$data &lt;br&gt;&amp;gt; /tmp/script.pl &lt;br&gt;&amp;gt; Блин, ну сейчас-то всё как надо? )) А то я волнуюсь, переживаю &lt;br&gt;&amp;gt; )))))))) &lt;br&gt;&lt;br&gt;Да, все супер. Спасибо Вам!&lt;br&gt;А все-таки как думаете, если бы через сравнене строк сделать быстрее бы скрипт выполнялся?Чисто теоретически.&lt;br&gt;</description>
</item>

<item>
    <title>Помогите решить задачку (михалыч)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9870.html#10</link>
    <pubDate>Tue, 24 Jun 2014 13:22:57 GMT</pubDate>
    <description>#!/bin/sh&lt;br&gt;&lt;br&gt;data=$(date -v -1d &quot;+&#037;F&quot;)&lt;br&gt;&lt;br&gt;mkdir /tmp/src_dir&lt;br&gt;mkdir /tmp/dst_dir&lt;br&gt;&lt;br&gt;touch /tmp/src_dir/01 /tmp/src_dir/02 /tmp/src_dir/03 /tmp/src_dir/04 /tmp/src_dir/05&lt;br&gt;&lt;br&gt;cp /tmp/src_dir/01 /tmp/dst_dir/01-$data&lt;br&gt;cp /tmp/src_dir/02 /tmp/dst_dir/02-$data&lt;br&gt;cp /tmp/src_dir/05 /tmp/dst_dir/05-$data&lt;br&gt;&lt;br&gt;/tmp/script.pl&lt;br&gt;&lt;br&gt;Блин, ну сейчас-то всё как надо? )) А то я волнуюсь, переживаю ))))))))&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Помогите решить задачку (михалыч)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9870.html#9</link>
    <pubDate>Tue, 24 Jun 2014 12:36:46 GMT</pubDate>
    <description>&amp;gt; От жары у меня мозг плавится )) &lt;br&gt;&lt;br&gt;Косяк. Не внимателен был.&lt;br&gt;&lt;br&gt;Так попробуйте.&lt;br&gt;&lt;br&gt;&#091;code&#093;&lt;br&gt;#!/usr/bin/perl&lt;br&gt;&lt;br&gt;use strict;&lt;br&gt;use warnings;&lt;br&gt;use POSIX;&lt;br&gt;&lt;br&gt;&lt;br&gt;my $srcd = &quot;/tmp/src_dir&quot;;&lt;br&gt;my $dstd = &quot;/tmp/dst_dir&quot;;&lt;br&gt;&lt;br&gt;my $yesterday = strftime &quot;&#037;F&quot;, localtime(time-86400);&lt;br&gt;&lt;br&gt;my &#064;src;&lt;br&gt;open SRC, &quot;-&amp;#124;&quot;, &quot;ls $srcd&quot;;&lt;br&gt;while(&amp;lt;SRC&amp;gt;) &#123;&lt;br&gt;    chomp;&lt;br&gt;    push &#064;src, $_;&lt;br&gt;&#125;&lt;br&gt;close SRC;&lt;br&gt;&lt;br&gt;&lt;br&gt;my &#064;dst;&lt;br&gt;open DST, &quot;-&amp;#124;&quot;, &quot;ls $dstd&quot;;&lt;br&gt;while(&amp;lt;DST&amp;gt;) &#123;&lt;br&gt;    chomp;&lt;br&gt;    push &#064;dst, $_ if /$yesterday/;&lt;br&gt;&#125;&lt;br&gt;close DST;&lt;br&gt;&lt;br&gt;my &#037;seen;&lt;br&gt;&lt;br&gt;foreach my $file (&#064;dst) &#123;$seen&#123;$file&#125; = 1&#125;&lt;br&gt;&lt;br&gt;foreach my $file (&#064;src) &#123;&lt;br&gt;    unless ($seen&#123;&quot;$file-$yesterday&quot;&#125;) &#123;&lt;br&gt;        print &quot;File $file-$yesterday not found!&#092;n&quot;;&lt;br&gt;    &#125;&lt;br&gt;&#125;&lt;br&gt;&#091;/code&#093;&lt;br&gt;&lt;br&gt;Жара ))&lt;br&gt;</description>
</item>

<item>
    <title>Помогите решить задачку (johny69)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9870.html#8</link>
    <pubDate>Tue, 24 Jun 2014 12:35:36 GMT</pubDate>
    <description>&amp;gt; #!/bin/sh &lt;br&gt;&amp;gt; mkdir /tmp/src_dir &lt;br&gt;&amp;gt; mkdir /tmp/dst_dir &lt;br&gt;&amp;gt; touch /tmp/src_dir/2014-06-21 /tmp/src_dir/2014-06-22 /tmp/src_dir/2014-06-23 &lt;br&gt;&amp;gt; cp /tmp/src_dir/2014-06-21 /tmp/src_dir/2014-06-22 /tmp/dst_dir/ &lt;br&gt;&amp;gt; /tmp/script.pl &lt;br&gt;&amp;gt; Может по разному понимаем src и dst (( &lt;br&gt;&amp;gt; От жары у меня мозг плавится )) &lt;br&gt;&lt;br&gt;Возможно, я не точно описал задание.&lt;br&gt;&lt;br&gt;Дело в том,что в src_dir(директория откуда файлы будут копироваться) имя файлов не содержат никакой даты.&lt;br&gt;А уже после копирования этих файлов в dst_dir к имени каждого файла из src_dir добавляется дата копирования. &lt;br&gt;&lt;br&gt;Т.е скрипт должен проверить есть ли для каждого файла из src_dir копия за вчерашний день в dst_dir, ну и на вывести имя файла из src_dir,который не был скопирован&#092;отсутствует в dst_dir.&lt;br&gt;Но опять же, opendir() юзать нельзя, значит скорее всего надо строки сравнивать.&lt;br&gt;</description>
</item>

<item>
    <title>Помогите решить задачку (михалыч)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9870.html#7</link>
    <pubDate>Tue, 24 Jun 2014 11:56:55 GMT</pubDate>
    <description>#!/bin/sh&lt;br&gt;&lt;br&gt;mkdir /tmp/src_dir&lt;br&gt;mkdir /tmp/dst_dir&lt;br&gt;&lt;br&gt;touch /tmp/src_dir/2014-06-21 /tmp/src_dir/2014-06-22 /tmp/src_dir/2014-06-23&lt;br&gt;&lt;br&gt;cp /tmp/src_dir/2014-06-21 /tmp/src_dir/2014-06-22 /tmp/dst_dir/&lt;br&gt;&lt;br&gt;/tmp/script.pl&lt;br&gt;&lt;br&gt;Может по разному понимаем src и dst ((&lt;br&gt;&lt;br&gt;От жары у меня мозг плавится ))&lt;br&gt;</description>
</item>

<item>
    <title>Помогите решить задачку (johny69)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9870.html#6</link>
    <pubDate>Tue, 24 Jun 2014 09:50:25 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt; foreach my $file (&#064;src) &#123; &lt;br&gt;&amp;gt;     unless ($seen&#123;$file&#125;) &#123; &lt;br&gt;&amp;gt;         print &quot;File $file not &lt;br&gt;&amp;gt; found!&#092;n&quot;; &lt;br&gt;&amp;gt;     &#125; &lt;br&gt;&amp;gt; &#125;&#091;/code&#093; &lt;br&gt;&amp;gt; http://www.inter-activ.ru/cgi-bin/texts.cgi?m=m24 &lt;br&gt;&amp;gt; ну и рекомендую &quot;Perl. Сборник рецептов. Для профессионалов авторы Кристиансен Т. Торкингтон &lt;br&gt;&amp;gt; Н.&quot; &lt;br&gt;&amp;gt; и будет понятно &quot;с какой стороны подходить&quot; &lt;br&gt;&lt;br&gt;От души, Михалыч!Но это, пожалуй, очень сложное решение для меня. И почему-то не работает скрипт.&lt;br&gt;Имею в /tmp/src_dir следующее:&lt;br&gt;&#091;code&#093;johny&#064;lab:~$ ls /tmp/src_dir/&lt;br&gt;file1  file2  file3  file4&lt;br&gt;&#091;/code&#093;&lt;br&gt;А в /tmp/dst_dir:&lt;br&gt;&#091;code&#093;johny&#064;lab:~$ ls /tmp/dst_dir/&lt;br&gt;file1-2014-06-23  file2-2014-06-22&#091;/code&#093;&lt;br&gt;Т.е. скрипт на выходе должен выдать,что файлы file2  file3  file4 нот фаунд,но он молчаливо выполняется,exit код &quot;0&quot;.&lt;br&gt;У меня изначально была идея попроще:&lt;br&gt;-загнать обе диреткории в массивы через вызов внешнего ls&lt;br&gt;-затем проверить есть ли каждая строка из &#064;src_dir в &#064;dst_dir с таким окончанием &quot;-$yesterday&quot;.&lt;br&gt;Но не знаю как это запилить правильно и </description>
</item>

<item>
    <title>Помогите решить задачку (Andrey Mitrofanov)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9870.html#5</link>
    <pubDate>Tue, 24 Jun 2014 05:21:27 GMT</pubDate>
    <description>&amp;gt; а чо сессия еще не кончилась?&lt;br&gt;&lt;br&gt;Ну, мало ли. Пересдача, собеседование, ...&lt;br&gt;</description>
</item>

<item>
    <title>Помогите решить задачку (михалыч)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9870.html#4</link>
    <pubDate>Tue, 24 Jun 2014 04:49:11 GMT</pubDate>
    <description>&amp;gt; Даже не знаю с какой стороны подойти к этой задаче. Буду благодарен &lt;br&gt;&amp;gt; любой помощи!&lt;br&gt;&lt;br&gt;А да пожалуйста, а да на здоровье!&lt;br&gt;&#091;code&#093;#!/usr/bin/perl&lt;br&gt;&lt;br&gt;use strict;&lt;br&gt;use warnings;&lt;br&gt;use POSIX;&lt;br&gt;&lt;br&gt;&lt;br&gt;my $srcd = &quot;/tmp/src_dir&quot;;&lt;br&gt;my $dstd = &quot;/tmp/dst_dir&quot;;&lt;br&gt;&lt;br&gt;my $yesterday = strftime &quot;&#037;F&quot;, localtime(time-86400);&lt;br&gt;&lt;br&gt;my &#064;src;&lt;br&gt;open SRC, &quot;-&amp;#124;&quot;, &quot;ls $srcd&quot;;&lt;br&gt;while(&amp;lt;SRC&amp;gt;) &#123;&lt;br&gt;    chomp;&lt;br&gt;    push &#064;src, $_ if /$yesterday/;&lt;br&gt;&#125;&lt;br&gt;close SRC;&lt;br&gt;&lt;br&gt;&lt;br&gt;my &#064;dst;&lt;br&gt;open DST, &quot;-&amp;#124;&quot;, &quot;ls $dstd&quot;;&lt;br&gt;while(&amp;lt;DST&amp;gt;) &#123;&lt;br&gt;    chomp;&lt;br&gt;    push &#064;dst, $_ if /$yesterday/;&lt;br&gt;&#125;&lt;br&gt;close DST;&lt;br&gt;&lt;br&gt;my &#037;seen;&lt;br&gt;&lt;br&gt;foreach my $file (&#064;dst) &#123;$seen&#123;$file&#125; = 1&#125;&lt;br&gt;&lt;br&gt;foreach my $file (&#064;src) &#123;&lt;br&gt;    unless ($seen&#123;$file&#125;) &#123;&lt;br&gt;        print &quot;File $file not found!&#092;n&quot;;&lt;br&gt;    &#125;&lt;br&gt;&#125;&#091;/code&#093;&lt;br&gt;&lt;br&gt;http://www.inter-activ.ru/cgi-bin/texts.cgi?m=m24&lt;br&gt;ну и рекомендую &quot;Perl. Сборник рецептов. Для профессионалов авторы Кристиансен Т. Торкингтон Н.&quot;&lt;br&gt;и будет понятно &quot;с какой стороны подходить&quot;&lt;br&gt;</description>
</item>

<item>
    <title>Помогите решить задачку (Pahanivo)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9870.html#3</link>
    <pubDate>Tue, 24 Jun 2014 03:57:25 GMT</pubDate>
    <description>а чо сессия еще не кончилась?&lt;br&gt; &lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
</item>

</channel>
</rss>
