<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>32366</bug_id>
          
          <creation_ts>2016-08-09 03:31:22 +0300</creation_ts>
          <short_desc>grep видит текстовый лог как двоичный файл</short_desc>
          <delta_ts>2016-08-11 17:10:55 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>grep</component>
          <version>unstable</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>NOTABUG</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Speccyfighter">zxwarior</reporter>
          <assigned_to name="placeholder@altlinux.org">placeholder</assigned_to>
          <cc>evg</cc>
    
    <cc>glebfm</cc>
    
    <cc>ldv</cc>
    
    <cc>mike</cc>
    
    <cc>placeholder</cc>
    
    <cc>vt</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>158013</commentid>
    <comment_count>0</comment_count>
      <attachid>6791</attachid>
    <who name="Speccyfighter">zxwarior</who>
    <bug_when>2016-08-09 03:31:22 +0300</bug_when>
    <thetext>Created attachment 6791
Кириллические строки в логах /var/log/

Доброго времени суток!

Из-за логгирования на русском, grep воспринимает текстовый лог как бинарный

# grep -rHi . /var/log|grep &apos;Двоичный файл&apos;|grep &apos;messages\|warnings&apos;
Двоичный файл /var/log/daemons/warnings совпадает
Двоичный файл /var/log/syslog/messages совпадает
Двоичный файл /var/log/user/warnings совпадает

Причина кроется вот в чём:
если приложение выбрасывает в лог сообщение на русском, то в словах вместо некоторых кириллических символов отображается не символ, а его код. И если лог содержит такие сообщения, то grep воспринимает лог как бинарный файл.
Опция --text для grep, поможет отобразить текстовый лог, но кириллические строки либо плохо читаемы, либо нечитабельны совсем.

Эти логи не учитывались и были отброшены сразу как бинарные:

# file /var/log/{sa/sa06,wtmp,lastlog}
/var/log/sa/sa06: data
/var/log/wtmp:    data
/var/log/lastlog: data

/var/log/sa* - через sar
/var/log/wtmp - utmpdump или last
/var/log/lastlog - lastlog

Во вложении grep-нутые кириллические строки из логов, - так как они отображаются при просмотре.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>158014</commentid>
    <comment_count>1</comment_count>
    <who name="Speccyfighter">zxwarior</who>
    <bug_when>2016-08-09 03:53:54 +0300</bug_when>
    <thetext>Предложение:
Хорошо бы всё логгировать только на английском.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>158015</commentid>
    <comment_count>2</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2016-08-09 04:18:09 +0300</bug_when>
    <thetext>(In reply to comment #0)
&gt; Из-за логгирования на русском, grep воспринимает текстовый лог как бинарный

Не надо логгировать на русском.

(In reply to comment #1)
&gt; Предложение:
&gt; Хорошо бы всё логгировать только на английском.

Это точно предложение к grep&apos;у?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>158016</commentid>
    <comment_count>3</comment_count>
    <who name="Evgenii Terechkov">evg</who>
    <bug_when>2016-08-09 08:02:42 +0300</bug_when>
    <thetext>Насколько помнится, распознавание байтов как символов языка регулируется локалью. Просто установите нужную локаль и grep будет понимать русский.

Что конечно не отменяет того, что не нужно протоколировать на национальных языках.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>158017</commentid>
    <comment_count>4</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2016-08-09 09:59:11 +0300</bug_when>
    <thetext>Или локаль, или grep -a.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>158039</commentid>
    <comment_count>5</comment_count>
    <who name="Speccyfighter">zxwarior</who>
    <bug_when>2016-08-11 14:35:04 +0300</bug_when>
    <thetext>(В ответ на комментарий №2)
&gt; (In reply to comment #0)
&gt; &gt; Из-за логгирования на русском, grep воспринимает текстовый лог как бинарный
&gt; 
&gt; Не надо логгировать на русском.

Согласен.

&gt; (In reply to comment #1)
&gt; &gt; Предложение:
&gt; &gt; Хорошо бы всё логгировать только на английском.
&gt; 
&gt; Это точно предложение к grep&apos;у?

Согласен:
Надо перевешивать на pulseaudio и gdm2.20

В лог кириллицу gdm-binary выплёвывает:

# grep -rHi . --text /var/log|grep --text &apos;202ал&apos;
/var/log/daemons/warnings:May  2 14:14:00 comp gdm-binary[2089]: WARNING: gdm_slave_xioerror_handler: Фа�\202ал�\214на�\217 о�\210ибка X - �\237е�\200езап�\203�\201к :0 

$ rpm -qf $(which gdm-binary)
gdm2.20-2.20.8-alt10

С пульсаудией вместе, - из того же лога во вложении:

/var/log/syslog/messages:May  2 13:44:44 comp pulseaudio[2282]: [pulseaudio] authkey.c: Failed to open cookie file &apos;/home/user/.config/pulse/cookie&apos;: �\235е�\202 �\202акого �\204айла или ка�\202алога</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>158041</commentid>
    <comment_count>6</comment_count>
    <who name="Speccyfighter">zxwarior</who>
    <bug_when>2016-08-11 15:36:05 +0300</bug_when>
    <thetext>(В ответ на комментарий №3)
&gt; Насколько помнится, распознавание байтов как символов языка регулируется
&gt; локалью. Просто установите нужную локаль и grep будет понимать русский.

Не будет :)
Оно уже в логе.

Текстовый вид:

�\202акого

hex-код:

D1 5C 32 30 32 D0 B0 D0 BA D0 BE D0 B3 D0 BE

Кириллические символы двухбайтные.
В слове: такого (или Т ?)
первый байт первого символа - D1
Вместо второго байта, последовательность байт:
5C 32 30 32
\202

&gt; Что конечно не отменяет того, что не нужно протоколировать на национальных
&gt; языках.

:) А это да.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>158042</commentid>
    <comment_count>7</comment_count>
    <who name="Speccyfighter">zxwarior</who>
    <bug_when>2016-08-11 15:38:30 +0300</bug_when>
    <thetext>(В ответ на комментарий №4)
&gt; Или локаль, или grep -a.

Так и удалось рекурсивно грепнуть.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>158044</commentid>
    <comment_count>8</comment_count>
    <who name="Speccyfighter">zxwarior</who>
    <bug_when>2016-08-11 15:49:26 +0300</bug_when>
    <thetext>(В ответ на комментарий №5)
&gt; (В ответ на комментарий №2)
&gt; &gt; (In reply to comment #0)
&gt; &gt; ...
&gt; 
&gt; &gt; (In reply to comment #1)
&gt; &gt; &gt; Предложение:
&gt; &gt; &gt; Хорошо бы всё логгировать только на английском.
&gt; &gt; 
&gt; &gt; Это точно предложение к grep&apos;у?
&gt; 
&gt; Согласен:
&gt; Надо перевешивать на pulseaudio и gdm2.20
&gt; 
&gt; В лог кириллицу gdm-binary выплёвывает:
&gt; 
&gt; # grep -rHi . --text /var/log|grep --text &apos;202ал&apos;
&gt; /var/log/daemons/warnings:May  2 14:14:00 comp gdm-binary[2089]: WARNING:
&gt; gdm_slave_xioerror_handler: Фа�\202ал�\214на�\217 о�\210ибка X -
&gt; �\237е�\200езап�\203�\201к :0 
&gt; 
&gt; $ rpm -qf $(which gdm-binary)
&gt; gdm2.20-2.20.8-alt10
&gt; 
&gt; С пульсаудией вместе, - из того же лога во вложении:
&gt; 
&gt; /var/log/syslog/messages:May  2 13:44:44 comp pulseaudio[2282]: [pulseaudio]
&gt; authkey.c: Failed to open cookie file &apos;/home/user/.config/pulse/cookie&apos;:
&gt; �\235е�\202 �\202акого �\204айла или ка�\202алога

Сейчас в системе alsa, а не pulseaudio, поэтому не соображу, могу только догадываться, что для пульсаудии вешать багу надо на пакет pulseaudio-daemon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>158045</commentid>
    <comment_count>9</comment_count>
    <who name="Speccyfighter">zxwarior</who>
    <bug_when>2016-08-11 17:10:55 +0300</bug_when>
    <thetext>Посмотрел на то что отрепортил, как бы со стороны:
https://forum.altlinux.org/index.php?topic=36322.msg292502#msg292502</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>6791</attachid>
            <date>2016-08-09 03:31:22 +0300</date>
            <delta_ts>2016-08-09 03:31:22 +0300</delta_ts>
            <desc>Кириллические строки в логах /var/log/</desc>
            <filename>grep-err-on-cyrillic-log.txt</filename>
            <type>text/plain</type>
            <size>3504</size>
            <attacher name="Speccyfighter">zxwarior</attacher>
            
              <data encoding="base64">IyBncmVwIC1ySGkgLiAtLXRleHQgL3Zhci9sb2d8Z3JlcCAtLXRleHQgJzIwMtCw0LsnCi92YXIv
bG9nL2RhZW1vbnMvd2FybmluZ3M6TWF5ICAyIDE0OjE0OjAwIGNvbXAgZ2RtLWJpbmFyeVsyMDg5
XTogV0FSTklORzogZ2RtX3NsYXZlX3hpb2Vycm9yX2hhbmRsZXI6INCk0LDvv71cMjAy0LDQu++/
vVwyMTTQvdCw77+9XDIxNyDQvu+/vVwyMTDQuNCx0LrQsCBYIC0g77+9XDIzN9C177+9XDIwMNC1
0LfQsNC/77+9XDIwM++/vVwyMDHQuiA6MCAKL3Zhci9sb2cvZGFlbW9ucy93YXJuaW5nczpNYXkg
IDIgMjA6NDI6MTEgY29tcCBnZG0tYmluYXJ5WzIwNzldOiBXQVJOSU5HOiBnZG1fc2xhdmVfeGlv
ZXJyb3JfaGFuZGxlcjog0KTQsO+/vVwyMDLQsNC777+9XDIxNNC90LDvv71cMjE3INC+77+9XDIx
MNC40LHQutCwIFggLSDvv71cMjM30LXvv71cMjAw0LXQt9Cw0L/vv71cMjAz77+9XDIwMdC6IDow
IAovdmFyL2xvZy9kYWVtb25zL3dhcm5pbmdzOk1heSAgNSAwMDoxNTo1NyBjb21wIGdkbS1iaW5h
cnlbMjA5OF06IFdBUk5JTkc6IGdkbV9zbGF2ZV94aW9lcnJvcl9oYW5kbGVyOiDQpNCw77+9XDIw
MtCw0Lvvv71cMjE00L3QsO+/vVwyMTcg0L7vv71cMjEw0LjQsdC60LAgWCAtIO+/vVwyMzfQte+/
vVwyMDDQtdC30LDQv++/vVwyMDPvv71cMjAx0LogOjAgCi92YXIvbG9nL2RhZW1vbnMvd2Fybmlu
Z3M6SnVuIDE4IDAyOjExOjM3IGNvbXAgZ2RtLWJpbmFyeVs3MDUwXTogV0FSTklORzogZ2RtX3Ns
YXZlX3hpb2Vycm9yX2hhbmRsZXI6INCk0LDvv71cMjAy0LDQu++/vVwyMTTQvdCw77+9XDIxNyDQ
vu+/vVwyMTDQuNCx0LrQsCBYIC0g77+9XDIzN9C177+9XDIwMNC10LfQsNC/77+9XDIwM++/vVwy
MDHQuiA6MCAKL3Zhci9sb2cvc3lzbG9nL21lc3NhZ2VzOk1heSAgMiAxMzo0NDo0NCBjb21wIHB1
bHNlYXVkaW9bMjI4Ml06IFtwdWxzZWF1ZGlvXSBhdXRoa2V5LmM6IEZhaWxlZCB0byBvcGVuIGNv
b2tpZSBmaWxlICcvaG9tZS91c2VyLy5jb25maWcvcHVsc2UvY29va2llJzog77+9XDIzNdC177+9
XDIwMiDvv71cMjAy0LDQutC+0LPQviDvv71cMjA00LDQudC70LAg0LjQu9C4INC60LDvv71cMjAy
0LDQu9C+0LPQsAovdmFyL2xvZy9zeXNsb2cvbWVzc2FnZXM6TWF5ICAyIDEzOjQ0OjQ0IGNvbXAg
cHVsc2VhdWRpb1syMjgyXTogW3B1bHNlYXVkaW9dIGF1dGhrZXkuYzogRmFpbGVkIHRvIGxvYWQg
YXV0aGVudGljYXRpb24ga2V5ICcvaG9tZS91c2VyLy5jb25maWcvcHVsc2UvY29va2llJzog77+9
XDIzNdC177+9XDIwMiDvv71cMjAy0LDQutC+0LPQviDvv71cMjA00LDQudC70LAg0LjQu9C4INC6
0LDvv71cMjAy0LDQu9C+0LPQsAovdmFyL2xvZy9zeXNsb2cvbWVzc2FnZXM6TWF5ICAyIDEzOjQ0
OjQ0IGNvbXAgcHVsc2VhdWRpb1syMjgyXTogW3B1bHNlYXVkaW9dIGF1dGhrZXkuYzogRmFpbGVk
IHRvIG9wZW4gY29va2llIGZpbGUgJy9ob21lL3VzZXIvLnB1bHNlLWNvb2tpZSc6IO+/vVwyMzXQ
te+/vVwyMDIg77+9XDIwMtCw0LrQvtCz0L4g77+9XDIwNNCw0LnQu9CwINC40LvQuCDQutCw77+9
XDIwMtCw0LvQvtCz0LAKL3Zhci9sb2cvc3lzbG9nL21lc3NhZ2VzOk1heSAgMiAxMzo0NDo0NCBj
b21wIHB1bHNlYXVkaW9bMjI4Ml06IFtwdWxzZWF1ZGlvXSBhdXRoa2V5LmM6IEZhaWxlZCB0byBs
b2FkIGF1dGhlbnRpY2F0aW9uIGtleSAnL2hvbWUvdXNlci8ucHVsc2UtY29va2llJzog77+9XDIz
NdC177+9XDIwMiDvv71cMjAy0LDQutC+0LPQviDvv71cMjA00LDQudC70LAg0LjQu9C4INC60LDv
v71cMjAy0LDQu9C+0LPQsAovdmFyL2xvZy9zeXNsb2cvbWVzc2FnZXM6TWF5ICAyIDE0OjE0OjAw
IGNvbXAgZ2RtLWJpbmFyeVsyMDg5XTogV0FSTklORzogZ2RtX3NsYXZlX3hpb2Vycm9yX2hhbmRs
ZXI6INCk0LDvv71cMjAy0LDQu++/vVwyMTTQvdCw77+9XDIxNyDQvu+/vVwyMTDQuNCx0LrQsCBY
IC0g77+9XDIzN9C177+9XDIwMNC10LfQsNC/77+9XDIwM++/vVwyMDHQuiA6MCAKL3Zhci9sb2cv
c3lzbG9nL21lc3NhZ2VzOk1heSAgMiAyMDo0MjoxMSBjb21wIGdkbS1iaW5hcnlbMjA3OV06IFdB
Uk5JTkc6IGdkbV9zbGF2ZV94aW9lcnJvcl9oYW5kbGVyOiDQpNCw77+9XDIwMtCw0Lvvv71cMjE0
0L3QsO+/vVwyMTcg0L7vv71cMjEw0LjQsdC60LAgWCAtIO+/vVwyMzfQte+/vVwyMDDQtdC30LDQ
v++/vVwyMDPvv71cMjAx0LogOjAgCi92YXIvbG9nL3N5c2xvZy9tZXNzYWdlczpNYXkgIDUgMDA6
MTU6NTcgY29tcCBnZG0tYmluYXJ5WzIwOThdOiBXQVJOSU5HOiBnZG1fc2xhdmVfeGlvZXJyb3Jf
aGFuZGxlcjog0KTQsO+/vVwyMDLQsNC777+9XDIxNNC90LDvv71cMjE3INC+77+9XDIxMNC40LHQ
utCwIFggLSDvv71cMjM30LXvv71cMjAw0LXQt9Cw0L/vv71cMjAz77+9XDIwMdC6IDowIAovdmFy
L2xvZy9zeXNsb2cvbWVzc2FnZXM6SnVuIDE4IDAyOjExOjM3IGNvbXAgZ2RtLWJpbmFyeVs3MDUw
XTogV0FSTklORzogZ2RtX3NsYXZlX3hpb2Vycm9yX2hhbmRsZXI6INCk0LDvv71cMjAy0LDQu++/
vVwyMTTQvdCw77+9XDIxNyDQvu+/vVwyMTDQuNCx0LrQsCBYIC0g77+9XDIzN9C177+9XDIwMNC1
0LfQsNC/77+9XDIwM++/vVwyMDHQuiA6MCAKL3Zhci9sb2cvdXNlci93YXJuaW5nczpNYXkgIDIg
MTM6NDQ6NDQgY29tcCBwdWxzZWF1ZGlvWzIyODJdOiBbcHVsc2VhdWRpb10gYXV0aGtleS5jOiBG
YWlsZWQgdG8gb3BlbiBjb29raWUgZmlsZSAnL2hvbWUvdXNlci8uY29uZmlnL3B1bHNlL2Nvb2tp
ZSc6IO+/vVwyMzXQte+/vVwyMDIg77+9XDIwMtCw0LrQvtCz0L4g77+9XDIwNNCw0LnQu9CwINC4
0LvQuCDQutCw77+9XDIwMtCw0LvQvtCz0LAKL3Zhci9sb2cvdXNlci93YXJuaW5nczpNYXkgIDIg
MTM6NDQ6NDQgY29tcCBwdWxzZWF1ZGlvWzIyODJdOiBbcHVsc2VhdWRpb10gYXV0aGtleS5jOiBG
YWlsZWQgdG8gbG9hZCBhdXRoZW50aWNhdGlvbiBrZXkgJy9ob21lL3VzZXIvLmNvbmZpZy9wdWxz
ZS9jb29raWUnOiDvv71cMjM10LXvv71cMjAyIO+/vVwyMDLQsNC60L7Qs9C+IO+/vVwyMDTQsNC5
0LvQsCDQuNC70Lgg0LrQsO+/vVwyMDLQsNC70L7Qs9CwCi92YXIvbG9nL3VzZXIvd2FybmluZ3M6
TWF5ICAyIDEzOjQ0OjQ0IGNvbXAgcHVsc2VhdWRpb1syMjgyXTogW3B1bHNlYXVkaW9dIGF1dGhr
ZXkuYzogRmFpbGVkIHRvIG9wZW4gY29va2llIGZpbGUgJy9ob21lL3VzZXIvLnB1bHNlLWNvb2tp
ZSc6IO+/vVwyMzXQte+/vVwyMDIg77+9XDIwMtCw0LrQvtCz0L4g77+9XDIwNNCw0LnQu9CwINC4
0LvQuCDQutCw77+9XDIwMtCw0LvQvtCz0LAKL3Zhci9sb2cvdXNlci93YXJuaW5nczpNYXkgIDIg
MTM6NDQ6NDQgY29tcCBwdWxzZWF1ZGlvWzIyODJdOiBbcHVsc2VhdWRpb10gYXV0aGtleS5jOiBG
YWlsZWQgdG8gbG9hZCBhdXRoZW50aWNhdGlvbiBrZXkgJy9ob21lL3VzZXIvLnB1bHNlLWNvb2tp
ZSc6IO+/vVwyMzXQte+/vVwyMDIg77+9XDIwMtCw0LrQvtCz0L4g77+9XDIwNNCw0LnQu9CwINC4
0LvQuCDQutCw77+9XDIwMtCw0LvQvtCz0LAK
</data>

          </attachment>
      

    </bug>

</bugzilla>