Показаны сообщения с ярлыком perl. Показать все сообщения
Показаны сообщения с ярлыком perl. Показать все сообщения

понедельник, 18 декабря 2017 г.

Конвертируем время в лог-фале из формата TAI64N в человеко-читаемый вил

В логах qmail время пишется в формате TAI64N, что иногда доставляет неудобств.
Решается перенаправлением лога через pipe в исправляющий это через pipe в perl-код.
Выглядит как-то так:
tail -F /var/log/qmail/*/current | perl -MPOSIX=strftime -npe 's{\@4 (\w{15}) (\w{8}) }{strftime( "%Y-%m-%d %H:%M:%S.".sprintf("%09s",hex($2)),localtime hex($1) )}ex' 

пятница, 13 марта 2015 г.

Правильная демонизация в perl

sub daemonize {
  logger('Entering Daemon mode');
  chdir '/' or die "Can't chdir to /: $!";
  umask 0;

  open STDIN,  '<', '/dev/null' or die "Can't read /dev/null: $!";
  open STDOUT, '>', '/dev/null' or die "Can't write to /dev/null: $!";
  open STDERR, '>', '/dev/null' or die "Can't write to /dev/null: $!";

  my $pid = fork;
  exit if $pid;
  if (!defined $pid) { die "Couldn't fork: $!" }
# Here you may want to detach script output from console
# logger_del('console'); #(*)
  setsid() or die "Can't start a new session: $!";

# logger('Now in Daemon mode'); #(*)
  say 'Now in Daemon mode';

  return
}

* 'logger()' is my own tool for convinient data output, you can simply replace it with 'say' or 'print'

четверг, 12 марта 2015 г.

среда, 11 марта 2015 г.