Препятствуйте тому, чтобы хвост изменил набор символов терминала

Я предполагаю Ваш vsftpd никогда не запускался. Вы, возможно, должны попытаться запустить его вручную через /etc/init.d/vsftpd start и исследуйте системные журналы на то, что происходит.

5
01.02.2017, 01:02
4 ответа

Что касается этого,

tail --follow=name my-rolling-file.log | strings

По умолчанию для строк выводятся только печатные символы длиной 4 (или более), но вы можете изменить это с помощью -n {number}.

5
27.01.2020, 20:31

Можно переводить специальные символы (двоичные данные). в обычные символы, которые безопасно отображать путем суммирования вашей команды хвоста в cat -v:

tail --follow=name my-rolling-file.log | cat -v

вариант -v (подробный) команды cat (также известный как -показ-непечать). отображает "непечатные" символы с помощью ^ и M- примечаний:

  • 0x00 отображается как ^@
  • 0x01 отображается как ^A
  • 0x02 отображается как ^B
  • и др.
  • 0x7F отображается как ^?
  • 0x80-0xFF отображается как M-, за которым следует изображение низкого порядка семь битов байта.

Или, если вы предпочитаете отказаться от символов, используйте:

tail --follow=name my-rolling-file.log | tr -cd "\t\n -~"

tr "переводит" символы, т.е. наносит их на карту.  Это может быть использовано, например, для смены нижнего регистра на верхний.  Опция -d говорит об удалении символов; например, -d aeiou удаляет все (нижний регистр) гласные.  Опция -c означает дополнение; т.е. делать все символы, кроме тех, которые я указываю.  "\t\n -~" - это табуляция, новая строка и все обычные символы для печати.

12
27.01.2020, 20:31

Преобразовать (некоторые хлопотные) символы в . с TR :

tail -f data | tr "\000-\011\013-\037\177-\377" "."
3
27.01.2020, 20:31

Я спросил и ответил на аналогичный вопрос на сайте вопросов и ответов Fedora .

Получается, что Yum сохраняет свою историю в базе данных SQLite в /var/lib/yum/history . Я смог создать это соединение SQL, которое показывает все установленные вручную пакеты вместе с их датой и временем установки.

В моем случае меня интересовали только пакеты, которые я установил вручную, поэтому я мог создать новую систему с инструментами, аналогичными тем, которые были установлены в моей исходной системе.

Следующая команда выводит на печать каждый установленный вручную пакет, идентификатор транзакции, дату и команду yum из журнала. Обратите внимание, что имя базы данных будет отличаться в системе.

$ sudo sqlite3 /var/lib/yum/history/history-2014-12-03.sqlite "select c.tid, datetime(t.timestamp, 'unixepoch'), c.cmdline from trans_cmdline as c join trans_beg as t where c.tid = t.tid"

Пример вывода (столбцы: идентификатор транзакции, дата, команда):

4|2015-02-21 20:28:03|install mutt wget emacs coreutils
5|2015-02-21 20:28:37|install firefox
6|2015-02-21 20:35:02|install pgp-tools
-121--31801-

Позвольте меньше справиться с проблемой, так как она хороша.

Пейджер меньше достаточно хорошо формирует двоичные файлы для вывода. Кроме того, часто полезны функции пейджера, такие как прокрутка и поиск.
Он не имеет прямой опции для отслеживания файла, который растет, но он имеет способ предоставить нажатие клавиш «type» после запуска.

Клавиша F начинает следовать за растущим файлом, обновляя экран по мере роста файла.
Префикс ключа: + вместо - и используйте его так же, как параметр:

Замена tail -f :

less +F growing-file.log

Чтобы продолжить следовать за файлом по имени, даже если он был удален или удален, и воссоздан с тем же именем, добавьте параметр --follow-name ; Он изменяет то, что делают клавиши F и + F , он не начинает следовать сам по себе:

Замена tail -F ( -follow = name ):

less --follow-name +F rolling-file.log

Если файл распознан как «двоичный файл», меньше спрашивает, действительно ли его нужно видеть - чтобы избежать вопроса, используйте также опцию -f ( -force ):

less --follow-name +F -f rolling-binary-file.log

(Обратите внимание, что значение -f для меньше отличается от того же параметра для хвоста .)

Используйте Ctrl + c , чтобы остановить следование, что позволяет выполнить прокрутку или поиск.

  • Начните с F .
  • Переход к началу: g .
  • Переход к началу: G .
  • Поиск: /.
  • Выход: q .

Пример двоичного вывода

$ less +F /usr/bin/vim 
"/usr/bin/vim" may be a binary file.  See it anyway?

После нажатия y (чего можно избежать с помощью -f ) на экране отображается:

 ^A^@^@^@^@^@<E5>
 ^A^@^@^@^@^@<E6>
 ^A^@^@^@^@^@^@^P^A^@^@^@^@^@^B^P^A^@^@^@^@^@8^P^A^@^@^@^@^@F^P^A^@^@^@^@^@
 <F1>^A^@^@^@^@^@^P<F1>^A^@^@^@^@^@-<F1>^A^@^@^@^@^@0<F1>^A^@^@^@^@^@i<F1>^A
 ^L(^@^@^@^@^@^@^@^@^@^@^@^@^@<A3><A5>&^@^@^@^@^@^@^@^@^@^@^@^@^@b['^@^@^@^@
 @^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@@<A7>&^@^@^@^@
 <AB>&^@^@^@^@^@Ȣ&^@^@^@^@^@^L,^@^@^@^@^@^@<FF><FF><FF><FF><FF><FF><FF><FF>
  ^@^@^@^@^@^@s]&^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^_<D3>%^@^@^@^@^@̢
 <AF>&^@^@^@^@^@<CA><(^@^@^@^@^@^B^D^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@
 <B1>&^@^@^@^@^@^D^D^H^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^R<B1>&^@^@
 ^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@<A9><B3>&^@^@^@^@^@D<B8>&^@^@
 <B5>&^@^@^@^@^@^]T&^@^@^@^@^@^BL^@^@^@^@^@^@H<8A>O^@^@^@^@^@F@^@^@^@^@^@^@
 K'^@^@^@^@^@^C<C4><FF><FF>^@^@^@^@^OK'^@^@^@^@^@^C<C3><FF><FF>^@^@^@^@^TK'
 #^@^@^@^@^@^D^@^@^@^@^@^@^@<E7>v&^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@
 #^@^@^@^@^@^D^@^@^@^@^@^@^@<E7>v&^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@
 #^@^@^@^@^@p|#^@^@^@^@^@P~#^@^@^@^@^@^@^@^@^@^@^@^@^@^P
 #^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@<90>{#^@^@^@^@^@^@^@^@^@^@^@^@^@
Waiting for data... (interrupt to abort)

Управляющие символы отображаются в виде символов типа ^ A ( ^ @ является нулевым байтом).
Они также выделяются на терминале (что не показано выше), чтобы символ Control-A, ^ A отличался от символа ^ , за которым следует A .

Настройка отображения двоичных символов

От man less :

Control  and  binary  characters  are  displayed  in  standout (reverse
video).  Each such character is displayed in caret notation if possible
(e.g.  ^A for control-A).  Caret notation is used only if inverting the
0100 bit results in a normal printable character.  Otherwise, the char‐
acter  is displayed as a hex number in angle brackets.  This format can
be changed by setting the LESSBINFMT environment variable.   LESSBINFMT
may begin with a "*" and one character to select the display attribute:
"*k" is blinking, "*d" is bold, "*u" is underlined, "*s"  is  standout,
and  "*n"  is  normal.  If LESSBINFMT does not begin with a "*", normal
attribute is assumed.  The remainder of LESSBINFMT is  a  string  which
may  include one printf-style escape sequence (a % followed by x, X, o,
d, etc.).  For example, if LESSBINFMT is  "*u[%x]",  binary  characters
are  displayed  in  underlined hexadecimal surrounded by brackets.  The
default if no LESSBINFMT is  specified  is  "*s<%02X>".   Warning:  the
result  of  expanding the character via LESSBINFMT must be less than 31
characters.

When the character set is utf-8, the LESSUTFBINFMT environment variable
acts similarly to LESSBINFMT but it applies to Unicode code points that
were successfully decoded but are unsuitable for display  (e.g.,  unas‐
signed  code  points).   Its  default  value is "<U+%04lX>".  Note that
LESSUTFBINFMT and LESSBINFMT  share  their  display  attribute  setting
("*x")  so specifying one will affect both; LESSUTFBINFMT is read after
LESSBINFMT so its setting, if any,  will  have  priority.   Problematic
octets  in  a  UTF-8  file (octets of a truncated sequence, octets of a
complete but non-shortest form  sequence,  illegal  octets,  and  stray
trailing  octets)  are displayed individually using LESSBINFMT so as to
facilitate diagnostic of how the UTF-8 file is ill-formed.
2
27.01.2020, 20:31

Теги

Похожие вопросы