Ik ben een shell script aan het maken om de log file van mijn Postfix MTA te analyseren. Zodat ik o.a. een overicht kan maken van de gerejecte mails en van de spammails.
#!/usr/local/bin/bash
echo "| Datum | | Type | From | IP adres" > "Jun/18"
echo "\--------------------|--------|------|--------------------------------------/ " >> "Jun/18"
awk '{ if ($2 == 18 && $7 == "reject:" )
print "|", $2, $1, "at", $3, "|", substr($7,0,6), "|", $8, "|", $10, "|"}' /var/log/maillog >> "Jun/18"
Dit werkt op zich goed. Het probleem is dat de veldlengte van het FROM adres ($10) niet altijd dezelfde lengte heeft. Hierdoor komen de velden in de kolom ernaast (IP adres) niet netjes onder elkaar te staan, maar direct achter het FROM adres.
Hoe kan ik de kolom From een vaste lengte geven?
#!/usr/local/bin/bash
echo "| Datum | | Type | From | IP adres" > "Jun/18"
echo "\--------------------|--------|------|--------------------------------------/ " >> "Jun/18"
awk '{ if ($2 == 18 && $7 == "reject:" )
print "|", $2, $1, "at", $3, "|", substr($7,0,6), "|", $8, "|", $10, "|"}' /var/log/maillog >> "Jun/18"
Dit werkt op zich goed. Het probleem is dat de veldlengte van het FROM adres ($10) niet altijd dezelfde lengte heeft. Hierdoor komen de velden in de kolom ernaast (IP adres) niet netjes onder elkaar te staan, maar direct achter het FROM adres.
Hoe kan ik de kolom From een vaste lengte geven?