■rsyslogのプライオリティ値リストを作成してみる。
$ apt-cache show rsyslog | grep Ver
Version: 8.24.0-1
■ソースのダウンロード
$ apt-get source --download-only rsyslog
$ tar zxvf rsyslog_8.24.0.orig.tar.gz
$ cd rsyslog-8.24.0/
■3ビット左シフトなので、8倍(2^3)すれば良い。
$ grep -A 33 LOG_EMERG ./runtime/rsyslog.h | awk '/LOG_/{gsub("LOG_","",$2);print $3"\t"$2}' |tr '[A-Z]' '[a-z]'
0 emerg
1 alert
2 crit
3 err
4 warning
5 notice
6 info
7 debug
(0<<3) kern
(1<<3) user
(2<<3) mail
(3<<3) daemon
(4<<3) auth
(5<<3) syslog
(6<<3) lpr
(7<<3) news
(8<<3) uucp
(9<<3) cron
(10<<3) authpriv
(11<<3) ftp
(12<<3) aso
(15<<3) caa
(16<<3) local0
(17<<3) local1
(18<<3) local2
(19<<3) local3
(20<<3) local4
(21<<3) local5
(22<<3) local6
(23<<3) local7
24 fac_invld
■ということで以下の並びとなる。
注意点としてはkernの0とemergの0を区別するために3桁になること。
$ grep -A 33 LOG_EMERG ./runtime/rsyslog.h | \
awk '/LOG_/{gsub("LOG_","",$2);print $3"\t"$2}' | \
tr '[A-Z]' '[a-z]' | sed -e 's/<<3)//' -e 's/(/_ /' | \
awk '!/24/{if($1=="_"){printf "echo \"%03d\t%s\" >> Severity.list\n",$2*8,$3} \
else{print "echo \""$1"\t"$2"\" >> Facility.list"}}' | sh
■Facilityが8種類なので計176種類の優先度が指定出来る。
$ echo -e $(wc -l Severity.list ;echo "\n";wc -l Facility.list) | awk 'BEGIN{a=1}{a=$1*a;print $0}END{print a}'
22 Severity.list
8 Facility.list
176
$ for m in $(awk '{print $1}' Severity.list );do \
for n in $(awk '{print $1}' Facility.list);do \
echo "$m $n" | awk '{print $1+$2}'; \
done; \
done | nl | awk 'END{print $1,$1/8}'
176 22
■組み合わせは176種類
$ for m in $(awk '{print $1}' Severity.list );do \
for n in $(awk '{print $1}' Facility.list);do \
echo "$m $n" | awk '{print $1+$2}'; \
done; \
done | awk '{printf "echo %d $(grep %03d Severity.list;grep %d Facility.list)\n",$1,int($1/8)*8,$1%8}' | sh | \
awk '{print "<"$1">",$2,$3,$4,$5}' > Priority.list
■以下のように調べる。
$ awk '/local4/&&/info/' Priority.list
<166> 160 local4 6 info
$ awk '/local4/&&/info/{printf "%s %d(%d) %s %d %s\n",$1,int($2/8),$2,$3,$4,$5}' Priority.list
<166> 20(160) local4 6 info
$ grep 160 Severity.list
160 local4
$ grep 6 Facility.list
6 info
■一覧は以下。
$ cat Priority.list
<0> 000 kern 0 emerg
<1> 000 kern 1 alert
<2> 000 kern 2 crit
<3> 000 kern 3 err
<4> 000 kern 4 warning
<5> 000 kern 5 notice
<6> 000 kern 6 info
<7> 000 kern 7 debug
<8> 008 user 0 emerg
<9> 008 user 1 alert
<10> 008 user 2 crit
<11> 008 user 3 err
<12> 008 user 4 warning
<13> 008 user 5 notice
<14> 008 user 6 info
<15> 008 user 7 debug
<16> 016 mail 0 emerg
<17> 016 mail 1 alert
<18> 016 mail 2 crit
<19> 016 mail 3 err
<20> 016 mail 4 warning
<21> 016 mail 5 notice
<22> 016 mail 6 info
<23> 016 mail 7 debug
<24> 024 daemon 0 emerg
<25> 024 daemon 1 alert
<26> 024 daemon 2 crit
<27> 024 daemon 3 err
<28> 024 daemon 4 warning
<29> 024 daemon 5 notice
<30> 024 daemon 6 info
<31> 024 daemon 7 debug
<32> 032 auth 0 emerg
<33> 032 auth 1 alert
<34> 032 auth 2 crit
<35> 032 auth 3 err
<36> 032 auth 4 warning
<37> 032 auth 5 notice
<38> 032 auth 6 info
<39> 032 auth 7 debug
<40> 040 syslog 0 emerg
<41> 040 syslog 1 alert
<42> 040 syslog 2 crit
<43> 040 syslog 3 err
<44> 040 syslog 4 warning
<45> 040 syslog 5 notice
<46> 040 syslog 6 info
<47> 040 syslog 7 debug
<48> 048 lpr 0 emerg
<49> 048 lpr 1 alert
<50> 048 lpr 2 crit
<51> 048 lpr 3 err
<52> 048 lpr 4 warning
<53> 048 lpr 5 notice
<54> 048 lpr 6 info
<55> 048 lpr 7 debug
<56> 056 news 0 emerg
<57> 056 news 1 alert
<58> 056 news 2 crit
<59> 056 news 3 err
<60> 056 news 4 warning
<61> 056 news 5 notice
<62> 056 news 6 info
<63> 056 news 7 debug
<64> 064 uucp 0 emerg
<65> 064 uucp 1 alert
<66> 064 uucp 2 crit
<67> 064 uucp 3 err
<68> 064 uucp 4 warning
<69> 064 uucp 5 notice
<70> 064 uucp 6 info
<71> 064 uucp 7 debug
<72> 072 cron 0 emerg
<73> 072 cron 1 alert
<74> 072 cron 2 crit
<75> 072 cron 3 err
<76> 072 cron 4 warning
<77> 072 cron 5 notice
<78> 072 cron 6 info
<79> 072 cron 7 debug
<80> 080 authpriv 0 emerg
<81> 080 authpriv 1 alert
<82> 080 authpriv 2 crit
<83> 080 authpriv 3 err
<84> 080 authpriv 4 warning
<85> 080 authpriv 5 notice
<86> 080 authpriv 6 info
<87> 080 authpriv 7 debug
<88> 088 ftp 0 emerg
<89> 088 ftp 1 alert
<90> 088 ftp 2 crit
<91> 088 ftp 3 err
<92> 088 ftp 4 warning
<93> 088 ftp 5 notice
<94> 088 ftp 6 info
<95> 088 ftp 7 debug
<96> 096 aso 0 emerg
<97> 096 aso 1 alert
<98> 096 aso 2 crit
<99> 096 aso 3 err
<100> 096 aso 4 warning
<101> 096 aso 5 notice
<102> 096 aso 6 info
<103> 096 aso 7 debug
<120> 120 caa 0 emerg
<121> 120 caa 1 alert
<122> 120 caa 2 crit
<123> 120 caa 3 err
<124> 120 caa 4 warning
<125> 120 caa 5 notice
<126> 120 caa 6 info
<127> 120 caa 7 debug
<128> 128 local0 0 emerg
<129> 128 local0 1 alert
<130> 128 local0 2 crit
<131> 128 local0 3 err
<132> 128 local0 4 warning
<133> 128 local0 5 notice
<134> 128 local0 6 info
<135> 128 local0 7 debug
<136> 136 local1 0 emerg
<137> 136 local1 1 alert
<138> 136 local1 2 crit
<139> 136 local1 3 err
<140> 136 local1 4 warning
<141> 136 local1 5 notice
<142> 136 local1 6 info
<143> 136 local1 7 debug
<144> 144 local2 0 emerg
<145> 144 local2 1 alert
<146> 144 local2 2 crit
<147> 144 local2 3 err
<148> 144 local2 4 warning
<149> 144 local2 5 notice
<150> 144 local2 6 info
<151> 144 local2 7 debug
<152> 152 local3 0 emerg
<153> 152 local3 1 alert
<154> 152 local3 2 crit
<155> 152 local3 3 err
<156> 152 local3 4 warning
<157> 152 local3 5 notice
<158> 152 local3 6 info
<159> 152 local3 7 debug
<160> 160 local4 0 emerg
<161> 160 local4 1 alert
<162> 160 local4 2 crit
<163> 160 local4 3 err
<164> 160 local4 4 warning
<165> 160 local4 5 notice
<166> 160 local4 6 info
<167> 160 local4 7 debug
<168> 168 local5 0 emerg
<169> 168 local5 1 alert
<170> 168 local5 2 crit
<171> 168 local5 3 err
<172> 168 local5 4 warning
<173> 168 local5 5 notice
<174> 168 local5 6 info
<175> 168 local5 7 debug
<176> 176 local6 0 emerg
<177> 176 local6 1 alert
<178> 176 local6 2 crit
<179> 176 local6 3 err
<180> 176 local6 4 warning
<181> 176 local6 5 notice
<182> 176 local6 6 info
<183> 176 local6 7 debug
<184> 184 local7 0 emerg
<185> 184 local7 1 alert
<186> 184 local7 2 crit
<187> 184 local7 3 err
<188> 184 local7 4 warning
<189> 184 local7 5 notice
<190> 184 local7 6 info
<191> 184 local7 7 debug