<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Tail -f logfile и logrotate</title>
    <link>https://opennet.me/openforum/vsluhforumID9/9493.html</link>
    <description>Привет, делаю скриптец который разбирает файл построчно, там если функция которая реализует &quot;tail -f&quot;, но вот затыка в том что ночью файлы ротейтятся, и дескриптор, читаемый файл подменяется, а скрипт продолжает читать информацию по дескриптору из старого файла, в который ничего уже не пишется. Подскажите как переделать функции, не могу додумать что проверять в цикле текующую позицию или брать каждый раз статистику о файле или время его создания?&lt;br&gt;&lt;br&gt;Пожалуйста не предлагайте использовать класс типо &quot;filetail.py&quot; и пр., хотелось бы реализовать коротко и просто в своем скрипте, без левых &quot;нестандартных классов&quot;, которые не идут в redhat  &quot;из коробки&quot;.&lt;br&gt;&lt;br&gt;#Set the filename and open the file&lt;br&gt;filename = &apos;security_log&apos;&lt;br&gt;file = open(filename,&apos;r&apos;)&lt;br&gt;&lt;br&gt;#Find the size of the file and move to the end&lt;br&gt;st_results = os.stat(filename)&lt;br&gt;st_size = st_results&#091;6&#093;&lt;br&gt;file.seek(st_size)&lt;br&gt;&lt;br&gt;while 1:&lt;br&gt;    where = file.tell()&lt;br&gt;    line = file.readline()&lt;br&gt;    if not line:&lt;br&gt;        time.sleep(1)&lt;br&gt;        file.seek(where)&lt;br&gt;    else:&lt;br&gt;  </description>

<item>
    <title>Tail -f logfile и logrotate (Zl0)</title>
    <link>https://opennet.me/openforum/vsluhforumID9/9493.html#7</link>
    <pubDate>Thu, 21 Jun 2012 14:07:44 GMT</pubDate>
    <description>&amp;gt;&amp;gt;&amp;gt; Про &quot;скриптец&quot; ничего не скажу.&lt;br&gt;&amp;gt;&amp;gt; Как бы сабж про реализацию &quot;tail -f&quot; в питоне, кэп.&lt;br&gt;&amp;gt; Ой, а я и не понял. Так бы дёргал stat()-ом номер айнода &lt;br&gt;&amp;gt; файла и при изменении переоткрывал поимени, но ведь Пииииитон!!! же ж. &lt;br&gt;&amp;gt; Бьюсь ап стену в тупом бессилии.&lt;br&gt;&lt;br&gt;Ну реализовал похоже немного, дергаю fstat время создания файла, и если файл по дескриптору старше, чем файл провереный по имени, то ...&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Tail -f logfile и logrotate (Andrey Mitrofanov)</title>
    <link>https://opennet.me/openforum/vsluhforumID9/9493.html#6</link>
    <pubDate>Thu, 21 Jun 2012 13:54:14 GMT</pubDate>
    <description>&amp;gt;&amp;gt; Про &quot;скриптец&quot; ничего не скажу.&lt;br&gt;&amp;gt; Как бы сабж про реализацию &quot;tail -f&quot; в питоне, кэп.&lt;br&gt;&lt;br&gt;Ой, а я и не понял. Так бы дёргал stat()-ом номер айнода файла и при изменении переоткрывал поимени, но ведь Пииииитон!!! же ж. Бьюсь ап стену в тупом бессилии.&lt;br&gt;</description>
</item>

<item>
    <title>Tail -f logfile и logrotate (Zl0)</title>
    <link>https://opennet.me/openforum/vsluhforumID9/9493.html#5</link>
    <pubDate>Thu, 21 Jun 2012 10:18:38 GMT</pubDate>
    <description>&amp;gt;&amp;gt; Привет, делаю скриптец который разбирает файл построчно, там если функция которая реализует &lt;br&gt;&amp;gt;&amp;gt; &quot;tail -f&quot;, но вот затыка в том что ночью файлы ротейтятся, &lt;br&gt;&amp;gt; man tail &lt;br&gt;&amp;gt; tail -F &lt;br&gt;&amp;gt;&amp;gt; и дескриптор, читаемый файл подменяется, а скрипт продолжает читать информацию по &lt;br&gt;&amp;gt; Про &quot;скриптец&quot; ничего не скажу.&lt;br&gt;&lt;br&gt;Как бы сабж про реализацию &quot;tail -f&quot; в питоне, кэп.&lt;br&gt;</description>
</item>

<item>
    <title>Tail -f logfile и logrotate (Andrey Mitrofanov)</title>
    <link>https://opennet.me/openforum/vsluhforumID9/9493.html#4</link>
    <pubDate>Thu, 21 Jun 2012 08:42:26 GMT</pubDate>
    <description>&amp;gt; Привет, делаю скриптец который разбирает файл построчно, там если функция которая реализует &lt;br&gt;&amp;gt; &quot;tail -f&quot;, но вот затыка в том что ночью файлы ротейтятся, &lt;br&gt;&lt;br&gt;man tail&lt;br&gt;tail -F&lt;br&gt;&lt;br&gt;&amp;gt; и дескриптор, читаемый файл подменяется, а скрипт продолжает читать информацию по &lt;br&gt;&lt;br&gt;Про &quot;скриптец&quot; ничего не скажу.&lt;br&gt;</description>
</item>

<item>
    <title>Tail -f logfile и logrotate (Pahanivo)</title>
    <link>https://opennet.me/openforum/vsluhforumID9/9493.html#3</link>
    <pubDate>Thu, 21 Jun 2012 04:57:11 GMT</pubDate>
    <description>А если коневеером пихать вместо logrotate в твой скрипт, а затем уже вываливать в logrotate? &lt;br&gt;&lt;br&gt;log &amp;#124; script &amp;#124; logrotate&lt;br&gt;</description>
</item>

<item>
    <title>Tail -f logfile и logrotate (Zl0)</title>
    <link>https://opennet.me/openforum/vsluhforumID9/9493.html#2</link>
    <pubDate>Wed, 20 Jun 2012 14:18:47 GMT</pubDate>
    <description>&amp;gt; Держать файл всегда открытым сторонним скриптом не очень хорошо &lt;br&gt;&amp;gt; Не лучше ли считывать по-минутно только последние записи?&lt;br&gt;&amp;gt; А так - в logrotate есть опция &quot;truncate&quot; - это можно использовать &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>Tail -f logfile и logrotate (vg)</title>
    <link>https://opennet.me/openforum/vsluhforumID9/9493.html#1</link>
    <pubDate>Wed, 20 Jun 2012 14:01:09 GMT</pubDate>
    <description>Держать файл всегда открытым сторонним скриптом не очень хорошо&lt;br&gt;Не лучше ли считывать по-минутно только последние записи?&lt;br&gt;&lt;br&gt;А так - в logrotate есть опция &quot;truncate&quot; - это можно использовать для вашего случая&lt;br&gt;файл копируется, и потом все записи стираются, но сам дескриптор остается прежним.&lt;br&gt;</description>
</item>

</channel>
</rss>
