Это действительно легко хранить в скрипте!
#! /usr/bin/perl -p
s/(\d+)/localtime($1)/e
Опция -e
представляет исполняемый код на Perl, который можно рассматривать как сценарий в командной строке, поэтому отбросьте его и вставьте код в тело. Оставьте -p
в строке Шебанга (#!
).
В общем, безопаснее всего придерживаться не более одного «набора» опций в строке Шебанга. Если вам нужно больше, вы всегда можете выбросить их эквиваленты в блоке BEGIN {}
.
Не забудьте chmod +x ~/bin/nagiostime.pl
Вы могли бы немного поумнеть и встраивать часть tail
:
#! /usr/bin/perl -p
BEGIN {
die "Usage: $0 [ nagios-log ]\n" if @ARGV > 1;
my $log = @ARGV ? shift : "/var/log/nagios/nagios.log";
@ARGV = ("tail -f '$log' |");
}
s/(\d+)/localtime($1)/e
Это работает, потому что код, написанный для вас -p
, использует "магию" Perl (2 аргумента) open
, которая специально обрабатывает каналы.
Без аргументов он преобразует nagios.log
, но вы также можете указать другой файл журнала, например, ,
$ ~/bin/nagiostime.pl /tmp/other-nagios.log