Назад | Перейти на главную страницу

Преобразование формата даты журнала SELinux из эпохи в нормальный

Когда SELinux регистрирует событие в журнале аудита в моей системе CentOS 6, он регистрирует его во времени, что создает настоящие хлопоты при попытке устранить неполадки. Есть ли способ заставить его регистрировать эти события с использованием удобочитаемых форматов даты? Я просмотрел файлы conf и погуглил, но, похоже, ничего не нашел.

Я не думаю, что есть какие-то параметры конфигурации, но я нашел сценарий, который добавит время, удобочитаемое человеком:

egrep '^type=(AVC|SELINUX)' /var/log/audit/audit.log |
while read line; do
   time=`echo $line | sed 's/.*audit(\([0-9]*\).*/\1/'`;
   echo `date -d @$time` $line;
done

Источник: http://blog.commandlinekungfu.com/2010/08/episode-106-epoch-fail.html

Ты можешь использовать ausearch с участием -i возможность интерпретировать результаты так, чтобы они были удобочитаемы:

# grep -i avc /var/log/audit/audit.log | ausearch -i

Код Perl:

# tail -f /var/log/audit/audit.log | perl -pe 's/(\d+)/localtime($1)/e'

Вы можете использовать команды sed и date для преобразования datetime, а затем для его форматирования.

tail -f /var/log/audit/audit.log | sed -re 's/(^.+)([0-9]{10})(.+$)/echo "\1"`date -d @\2 +%Y-%m-%d_%H:%M:%S`"\3"/e'

то же самое с использованием perl:

tail -f /var/log/audit/audit.log | perl -pe 's/(\d{10})/`echo -n \`date -d \@$1 +%Y-%m-%d_%H:%M:%S\``/e'