<?xml version='1.0' encoding='koi8-r'?>
<feed xmlns='http://www.w3.org/2005/Atom' xmlns:slash='http://purl.org/rss/1.0/modules/slash/' xml:base='http://lug.ivanovo.ru'>
  <id>http://lug.ivanovo.ru/f/forum.pl</id>
  <link rel='self' href='http://lug.ivanovo.ru/attach/xml/board34.atom10.xml'/>
  <link rel='alternate' href='http://lug.ivanovo.ru/f/forum.pl'/>
  <title>Ivanovo Linux Users Group - Системное</title>
  <subtitle>Latest forum posts</subtitle>
  <updated>2011-02-22T21:00:17Z</updated>
  <generator version='2.12.0' uri='http://www.mwforum.org/'>mwForum</generator>
  <entry>
    <id>http://lug.ivanovo.ru/f/topic_show.pl?pid=7307</id>
    <link href='http://lug.ivanovo.ru/f/topic_show.pl?pid=7307'/>
    <title>diff отслеживаем изменения в файлах.</title>
    <author><name>hawk</name></author>
    <published>2011-02-22T06:16:47Z</published>
    <updated>2011-02-22T06:22:10Z</updated>
    <category term='Системное'/>
    <slash:comments>2</slash:comments>
    <content type='html'>
      <![CDATA[<blockquote><p>&gt; по поводу кодировок - не совсем понятно, нафига оно надо. тут скорее путь в причесывании кодировок в исходных файлах кода</p></blockquote><br/>Правильно говоришь, все проекты должны быть в одной кодировке, все хостинги привести к одним версиям установленного ПО, разработку можно завернуть через систему контроля версий. Универсально, легко управляемо и ежели что, можно потом так же легко разобраться. Но ситуация не такая простая, разработка ведется в том виде, в котором велась долгие годы и устраивает всех, кроме меня )))).<br/>С кодировками пока вопрос снимаю, русские буквы не так важны. Видно код, который менялся, пока этого достаточно.]]>
    </content>
  </entry>
  <entry>
    <id>http://lug.ivanovo.ru/f/topic_show.pl?pid=7306</id>
    <link href='http://lug.ivanovo.ru/f/topic_show.pl?pid=7306'/>
    <title>diff отслеживаем изменения в файлах.</title>
    <author><name>Bercut</name></author>
    <published>2011-02-21T22:50:15Z</published>
    <updated>2011-02-21T22:50:15Z</updated>
    <category term='Системное'/>
    <slash:comments>2</slash:comments>
    <content type='html'>
      <![CDATA[по поводу кодировок - не совсем понятно, нафига оно надо. тут скорее путь в причесывании кодировок в исходных файлах кода (что только не выскажеш), и то не ясно откуда изначально такая разнопи...здица пошла, ну а раз пошла и нужна то видимо так на роду написано. ежели для повышения чсв, то делаеш вторую версию .diff файлов примерно следующим образом каждый файл, я так понимаю кодировка там толко одна на сервак, попускаеш через перлскрипт. в скрипте пишеш незатейливый регексп который выцепляет букеры не ascii, ну или подумай там как похитрей. в спане есть библиотечка с iconv, хотя тру перловики сами соответствующий регексп, как два пальца об асфальт напишут. заменяеш результатом найденное в первом регэкспе. файлик сохраняеш это и есть вторая версия.<br/><br/>по теме. ты ужо ея поднимал. советов начитался. кури методичку по правильной разработке говнософта. и никогда не бойся ломать стереотипы. сломанными стереотипами бьют не так сильно как целыми, и массогабариты не те и держать не удобно :D]]>
    </content>
  </entry>
  <entry>
    <id>http://lug.ivanovo.ru/f/topic_show.pl?pid=7304</id>
    <link href='http://lug.ivanovo.ru/f/topic_show.pl?pid=7304'/>
    <title>diff отслеживаем изменения в файлах.</title>
    <author><name>hawk</name></author>
    <published>2011-02-17T14:28:54Z</published>
    <updated>2011-02-17T14:54:20Z</updated>
    <category term='Системное'/>
    <slash:comments>2</slash:comments>
    <content type='html'>
      <![CDATA[Давненько все хотел что-то подобное сделать. Хостинг, диры с сайтами, два скрипта. Один делает синхронизацию всех дир хостинга. Синхронизация с возможностью удаления файлов в зеркале, если файл был удален в источнике и второй момент файлы изменяемые в источнике, не должны записываться в зеркало. Т.е. зеркало - это как бы отправная точка для учета всех последующих изменений файлов. Все это не сложно делается с помощью rsync.<br/>Второй скрипт делает diff папок зеркала источника, с записью в файлы формата имя_сайта.diff, так по каждому сайту, например 10 сайтов 10 diff файлов соответственно. Скрипты в крон, в 1:00 (утра) текущего дня выполняем синхронизацию,&#160; в 23:00 текущего дня получаем diff и того видим код, который менялся за день. В последующие дни&#160; будет формироваться накопительный патч. Возможно сделаю rsync замену изменяемых файлов в зеркале раз в сутки, тогда патчи будут не накопительные, а только изменения за день.<br/>Все работает, возможно некоторые вещи пересмотрю еще, если есть дельные советы с удовольствием выслушаю. Пока решаю накопительный патч или за день.<br/>Вопрос в следующем, при получении так называемого мега патча diff со всех файлов сайта, внутри получается каша из кодировок. Системная кодировка KOI8-R, часть файлов сайтов в UTF-8, часть в CP1251. По сути пока не заморачиваюсь, т.к. русские буквы не так важны, важно в первую очередь видеть код, который менялся, в каких файлах и строках были изменения. Но кто и как попробовал бы решить эту проблему :)? Например мне на ум приходит использование утилиты file для получения сведений кодировок, потом iconv. Да, скрипт получает diff-ы с 18 Gb файлов :) достаточно долго, но операция проходит ночью, так что приемлемо.&#160; <br/><br/>p.s. систему SVN и прочие не предлагать, вся разработка ведется программистом on-line на нескольких серверах, да и это идет в разрез с уже сложившимися традициями программирования веб программиста :), да и руководству главное скорость. Поэтому контроль веду я, таким вот лисипедным образом.]]>
    </content>
  </entry>
  <entry>
    <id>http://lug.ivanovo.ru/f/topic_show.pl?pid=7274</id>
    <link href='http://lug.ivanovo.ru/f/topic_show.pl?pid=7274'/>
    <title>Работа с системными пользователями в скрипте.</title>
    <author><name>hawk</name></author>
    <published>2011-02-07T13:13:58Z</published>
    <updated>2011-02-07T13:13:58Z</updated>
    <category term='Системное'/>
    <slash:comments>6</slash:comments>
    <content type='html'>
      <![CDATA[<div class='lblock'>не ну вводить то когда-то надо, а то девственником можно остаться :)</div><br/>весна весна, видимо уже близко ... :))))))]]>
    </content>
  </entry>
  <entry>
    <id>http://lug.ivanovo.ru/f/topic_show.pl?pid=7273</id>
    <link href='http://lug.ivanovo.ru/f/topic_show.pl?pid=7273'/>
    <title>Работа с системными пользователями в скрипте.</title>
    <author><name>Bercut</name></author>
    <published>2011-02-07T13:06:48Z</published>
    <updated>2011-02-07T13:06:48Z</updated>
    <category term='Системное'/>
    <slash:comments>6</slash:comments>
    <content type='html'>
      <![CDATA[не ну вводить то когда-то надо, а то девственником можно остаться :)<br/>если не вводить, то хранить, где гарантия, что место хранения не будет скомпрометировано...<br/>вощем если тема промышленная то не колхозь, про керберос таки почитай, например<br/>хотя все равно надо аутентифицироваться иначе никакой иб<br/>а так то всегда можно шифрануть весь раздел, из пушки по воробьям :), а ключи хрнить удаленной машинке да с хитрыми правилами доступа, хотябы кнопка шухер...]]>
    </content>
  </entry>
  <entry>
    <id>http://lug.ivanovo.ru/f/topic_show.pl?pid=7272</id>
    <link href='http://lug.ivanovo.ru/f/topic_show.pl?pid=7272'/>
    <title>Работа с системными пользователями в скрипте.</title>
    <author><name>hawk</name></author>
    <published>2011-02-07T12:23:50Z</published>
    <updated>2011-02-07T12:26:29Z</updated>
    <category term='Системное'/>
    <slash:comments>6</slash:comments>
    <content type='html'>
      <![CDATA[В том то и дело, что не вводить. Если бы вводить, а тут скрипт, а в скрипте обычно plain text, а хочется заморочиться :).<br/>ps чую плюну я на это дело и сделаю по старинке chmod 700 на скрипт для рута :))))]]>
    </content>
  </entry>
  <entry>
    <id>http://lug.ivanovo.ru/f/topic_show.pl?pid=7271</id>
    <link href='http://lug.ivanovo.ru/f/topic_show.pl?pid=7271'/>
    <title>Работа с системными пользователями в скрипте.</title>
    <author><name>Bercut</name></author>
    <published>2011-02-07T12:11:08Z</published>
    <updated>2011-02-07T12:11:08Z</updated>
    <category term='Системное'/>
    <slash:comments>6</slash:comments>
    <content type='html'>
      <![CDATA[слуш, ну чето тебе нужна какая-то серебряная пуля от криптографии и иб<br/>методов то куча, на самом деле, тока ты сам определись когда надо вводить пароль руками или делать иное аутентифицирующее действие, смарт-карта, етокен, глаз, рука, нога... жопа<br/>без сего сокровенного никак<br/>другое дело сколько раз и где<br/>а так смотри системы типа сингл сайн он, или разные pki ldap итд в различных смесях, да кстати, керберос еще в тему вообще конкретно, с его билетиками<br/>ето конечно гимор тот еще, но игра стоит свеч]]>
    </content>
  </entry>
  <entry>
    <id>http://lug.ivanovo.ru/f/topic_show.pl?pid=7269</id>
    <link href='http://lug.ivanovo.ru/f/topic_show.pl?pid=7269'/>
    <title>Работа с системными пользователями в скрипте.</title>
    <author><name>hawk</name></author>
    <published>2011-02-07T11:01:27Z</published>
    <updated>2011-02-07T11:14:45Z</updated>
    <category term='Системное'/>
    <slash:comments>6</slash:comments>
    <content type='html'>
      <![CDATA[Про SSH понятно, это даже обсуждалось тут не так давно. Сейчас поясню подробней.<br/>Сервер виртуальных машин, на нем крутиться виртуалка, в команде сначало передаем логин и пароль администратора сервера, который совпадает с логином паролем непривилигированного пользователя Линукс. Дальше когда заавторизовались - авторизуемся на хостовой машине, так сделал что пароль и логин хостовой машины совпадает с пассом и логином непривилигированного пользователя Линукс. Вот и не хочется столько паролей одновременно хранить в открытом виде, самое бы простое что напрашивается - это как то в скрипте заюзать зашифрованный пасс непривилигированного системного пользователя - если такое возможно. Было бы самое правильное решение, из костыликов уже SSH можно, можно GPG, а можно и MySQL :).<br/>Как идет работа в системе с пассами:<div class='lblock'>Сравнение правильности пароля происходит следующим образом. Программа получает настоящий пароль от пользователя, потом вырабатывает на его основе хеш и сравнивает его с тем, который она получила из файла /etc/shadow. Если хеши не совпадают, то значит пароли разные.</div>Вот только обратная ситуация невозможна насколько я понимаю.]]>
    </content>
  </entry>
  <entry>
    <id>http://lug.ivanovo.ru/f/topic_show.pl?pid=7267</id>
    <link href='http://lug.ivanovo.ru/f/topic_show.pl?pid=7267'/>
    <title>Работа с системными пользователями в скрипте.</title>
    <author><name>LOE</name></author>
    <published>2011-02-07T10:02:10Z</published>
    <updated>2011-02-07T10:02:10Z</updated>
    <category term='Системное'/>
    <slash:comments>6</slash:comments>
    <content type='html'>
      <![CDATA[Если надо запустить команду на удаленной машине, то используй ssh с публичными ключами.<br/>С помощью ssh-keygen генеришь ключи для локального пользователя.<br/>Потом публичный ключ помещаешь в файл /home/пользователь/.ssh/authorized_keys2 удаленного пользователя.<br/>После этого (если в глобальном конфиге sshd разрешено использование авторизации по ключам) можно &quot;логиниться&quot; на удаленную систему без ввода паролей.<br/><br/>В принципе, такое и локально можно сделать, только стучаться на localhost под нужным пользователем.<br/><br/>По большому счету, это создает некоторое беспокойство: если кто-то проник в локальную систему под локальным пользователем, он сможет выполнять команды на удаленной системе уже без всякой авторизации.<br/>Тут можно подумать о паролировании секретного ключа или размещении его в &quot;тихом месте&quot;.]]>
    </content>
  </entry>
  <entry>
    <id>http://lug.ivanovo.ru/f/topic_show.pl?pid=7265</id>
    <link href='http://lug.ivanovo.ru/f/topic_show.pl?pid=7265'/>
    <title>Работа с системными пользователями в скрипте.</title>
    <author><name>hawk</name></author>
    <published>2011-02-07T09:39:37Z</published>
    <updated>2011-02-07T09:46:38Z</updated>
    <category term='Системное'/>
    <slash:comments>6</slash:comments>
    <content type='html'>
      <![CDATA[Такая достаточно обычная ситуация, есть скрипт в котором выполняются команды содержащие данные о пользователе и пароле. Как правило все это в открытом виде, то-ли весна скоро, то ли возрастное, но паранойя все выше и выше :)))). Отсюда вопрос, кто как бы обыграл данную ситуацию. Самое простое, типа ставим права 700 - не интересно. <br/>Какие мысли на этот счет, например использовать GnuPG (gpg) для шифрования по ключу или возможно, можно как то выдернуть из системы юзера и подставить его пароль (в системе он шифрован). Тут ключевое - пароль, как дернуть юзера из системы понятно и не интересно.<br/><br/>Еще пояснение, в скрипте используются пасс логин системного пользователя, который является администратором одного сервиса. В скрипте еще указываются пасс и логин удаленной машины, которые совпадают с первыми. Т.е. если дернуть один раз из системы, то будет самое красивое решение.]]>
    </content>
  </entry>
  <entry>
    <id>http://lug.ivanovo.ru/f/topic_show.pl?pid=7257</id>
    <link href='http://lug.ivanovo.ru/f/topic_show.pl?pid=7257'/>
    <title>AWK работает не так как хотелось бы...</title>
    <author><name>hawk</name></author>
    <published>2011-02-04T07:35:40Z</published>
    <updated>2011-02-04T08:21:14Z</updated>
    <category term='Системное'/>
    <slash:comments>2</slash:comments>
    <content type='html'>
      <![CDATA[С perl надо подразобраться :), спасибо за пример.<br/>Похоже решил проблему, видоизменив строку вот так: <div class='lblock'>awk &#39;{OFMT=&quot;%.4f&quot;; $3 = int($2/1048576)} {print $1,&quot;==&gt; &quot;$2,&quot;(&quot;$3&quot;)&quot;}&#39; \</div> т.е. еще учел формат цифирь, что они не целочисленные. Теперь, очень мелкие значения просто<br/>45343 (0) - т.е. первое байты, потом 0 мегабайт, как задумывалось в общем.]]>
    </content>
  </entry>
  <entry>
    <id>http://lug.ivanovo.ru/f/topic_show.pl?pid=7256</id>
    <link href='http://lug.ivanovo.ru/f/topic_show.pl?pid=7256'/>
    <title>AWK работает не так как хотелось бы...</title>
    <author><name>LOE</name></author>
    <published>2011-02-04T07:10:42Z</published>
    <updated>2011-02-04T07:17:12Z</updated>
    <category term='Системное'/>
    <slash:comments>2</slash:comments>
    <content type='html'>
      <![CDATA[Странно, почему awk пропускает при выводе строку, если ее результат ноль.<br/><br/>Но лично я, не очень люблю делать такие пайпы. Максимум если надо 1 или 2 раза вызвать тот-же awk. Если больше - уже проще написать скриптик на том-же perl&#39;е:<div class='lblock'><div class='lblock'>$ cat dan <br/>0.1.2.3 123456789<br/>1.2.3.4 1023<br/>2.3.4.5 1<br/>6.7.8.9 5</div><div class='lblock'>$ cat p.pl <br/><br/>while(&lt;STDIN&gt;) {<br/>&#160; &#160; &#160; &#160; chop;<br/>&#160; &#160; &#160; &#160; (@D)=split(/[ \t]+/,$_);<br/>&#160; &#160; &#160; &#160; $S{$D[0]}+=$D[1];<br/>}<br/>map {<br/>&#160; &#160; &#160; &#160; printf(&quot;%s %s (%.3f)\n&quot;,$_,$S{$_},$S{$_}/1048576);<br/>} keys %S;</div><br/><div class='lblock'>$ cat dan | perl p.pl <br/>2.3.4.5 1 (0.000)<br/>1.2.3.4 1023 (0.001)<br/>6.7.8.9 5 (0.000)<br/>0.1.2.3 123456789 (117.738)</div></div><br/>Зато, появляется возможность в одном месте сделать всё, что требуется, оформить как хочется и сделать еще кучу вещей :)<br/><br/>PS. да, написанные слитно <b>[</b><b>i</b><b>]</b> приводят к отработке форматирования. Либо вставить пробелы, либо (как я сейчас), &quot;замаскировать&quot; другими конструкциями ;)]]>
    </content>
  </entry>
  <entry>
    <id>http://lug.ivanovo.ru/f/topic_show.pl?pid=7255</id>
    <link href='http://lug.ivanovo.ru/f/topic_show.pl?pid=7255'/>
    <title>AWK работает не так как хотелось бы...</title>
    <author><name>hawk</name></author>
    <published>2011-02-04T06:13:08Z</published>
    <updated>2011-02-04T06:29:38Z</updated>
    <category term='Системное'/>
    <slash:comments>2</slash:comments>
    <content type='html'>
      <![CDATA[Не знаю, верно ли создаю тему в данной ветке, но не нашел, куда можно было бы пихнуть скрипты. Суть следующая, есть ядерный коллектор, отдающий траф в формате (два дампа): <br/><div class='lblock'>ip(откуда)&#160; &#160;&#160; ip(куда)&#160; &#160;&#160; кол-во пакетов&#160;&#160; колво байт </div><br/><div class='lblock'>ip(куда)&#160; &#160; &#160; &#160;&#160; ip(откуда) кол-во пакетов&#160;&#160; колво байт </div> <br/>Этот вывод я сократил, так как порты не интересны, подсчет идет только по внешним ИП адресам чтобы видеть общую нагрузку. Есть скрипт, который дампит в файл данные с коллектора в выше приведенный формат, далее с помощью awk я беру только два столбца <div class='lblock'>ip(куда) колво байт</div> и <div class='lblock'>ip(откуда)&#160; колво байт</div> не трудно догадаться это входящий и исходящий траф, сам кусок кода выглядит следующим образом: <br/><div class='lblock'>/bin/cat ${DIR_DUMP}/${SDIR}/${DNAME_EXT} | awk &#39;{print $2,$4}&#39; \<br/>&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; | grep ${NET} | sort -fn \<br/>&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; | awk &#39;{sum[$1]+=$2}END{for(i in sum) print i,sum<i>}&#39; \<br/>&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; | awk &#39;{OFS=&quot; &quot;} $3 = int($2/1048576) {print $1,&quot;==&gt; &quot;$2,&quot;(&quot;$3&quot;)&quot;}&#39; \<br/>&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; | sort -fn &gt;&gt; ${DIR_SORT}/${SDIR}/${SNAME_EXT};<br/></div><br/>${DIR_DUMP}/${SDIR}/${DNAME_EXT} - это файл дампа входящего трафа<br/>суммируем по одинаковым адресам второй столбик в котором байты awk &#39;{sum[$1]+=$2}END{for(i in sum) print i,sum<i>}&#39; \<br/>а вот тут сама засада, строка awk &#39;{OFS=&quot; &quot;} $3 = int($2/1048576) {print $1,&quot;==&gt; &quot;$2,&quot;(&quot;$3&quot;)&quot;}&#39; \ выводит в файл данные в виде <div class='lblock'>IP1&#160;&#160; байт&#160; (мб)</div> т.е. в скобках добавляет еще Мегабайты для лучшего восприятия, и что выходит, если сумма хранящаяся в $2 мала то при делении на 1048576 получаем ноль целых ноль ноль ноль ноль, и вобщем строка из отчета с этим IP просто выпадает - ее нет, если блок кода привести к следующей форме<br/><div class='lblock'>/bin/cat ${DIR_DUMP}/${SDIR}/${DNAME_EXT} | awk &#39;{print $2,$4}&#39; \<br/>&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; | grep ${NET} | sort -fn \<br/>&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; | awk &#39;{sum[$1]+=$2}END{for(i in sum) print i,sum<i>}&#39; \<br/>&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; | sort -fn &gt;&gt; ${DIR_SORT}/${SDIR}/${SNAME_EXT};<br/></div> без преобразований в Мб, все IP на месте, но читать не удобняк, вот и вопрос, как сделать чтобы не терялась строка, когда делим и получаем ноль целых.<br/><br/><b>P/s LOE движок по тексту [ i ] воспринимает как начало курсива и автозаканчивает эти теги самостоятельно, оформляя текст курсивом.</b></i></i></i>]]>
    </content>
  </entry>
</feed>
