AWK является мощным инструментом анализа текста, быть особенно полезной командная система Linux, и анализ журналов, играет особенно важную роль в анализе содержимого файла.
AWK Описание
Awk, чтобы просто прочитать файл строку за строкой, в указанном сепараторе , разделяющую каждую строку, часть разделенного различного дальнейшего анализа.
Описание смотрите под командой AWK
Встроенные переменные | объяснение |
---|---|
$ 0 | Текущая запись (этот переменный для хранения содержимого всей строки) |
$ 1 $ п | N-й текущей записи поля, поля разделяются FS между |
FS | Сепаратор поле ввода по умолчанию является пространством или Tab |
NF | Количество полей в текущей записи является количество столбцов |
НЕТ | Количество записей, которые были считаны, как много строк |
FNR | В настоящее время количество записей, и разница NR является то, что это значение будет каждый собственный номер файла линии |
RS | Входной разделитель записей, по умолчанию символ новой строки |
OFS | Выходной разделитель полей, по умолчанию пробел |
ORS | Выходной разделитель записей, по умолчанию символ новой строки |
ИМЯ ФАЙЛА | Введите имя текущего файла |
использование AWK
Посмотрите сайт access.log.
tail -f /home/wwwlogs/access.log
148.70.179.32 - - [15/Nov/2019:05:46:28 +0800] "POST /wp-cron.php?doing_wp_cron=1573767987.5338680744171142578125 HTTP/1.1" 200 31 "http://www.test.com.cn/wp-cron.php?doing_wp_cron=1573767987.5338680744171142578125" "WordPress/5.0.7; http://www.test.com.cn"
220.181.108.143 - - [15/Nov/2019:05:46:28 +0800] "GET / HTTP/1.1" 200 5596 "-" "Mozilla/5.0 (Linux;u;Android 4.2.2;zh-cn;) AppleWebKit/534.46 (KHTML,like Gecko) Version/5.1 Mobile Safari/10600.6.3 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)"
111.206.198.18 - - [15/Nov/2019:05:46:28 +0800] "GET /wp-includes/css/dist/block-library/style.min.css?ver=5.0.7 HTTP/1.1" 200 25658 "http://www.test.com.cn/" "Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1 (compatible; Baiduspider-render/2.0; +http://www.baidu.com/search/spider.html)"
Журнал IP доступа по списку печати
awk -F" " '{print $1}' /home/wwwlogs/access.log
148.70.179.32
91.228.8.210
1.119.148.54
121.51.40.28
1.119.148.54
1.119.148.54
Плюс имя файла IP занимает №
awk -F" " '{print FILENAME"|"NR"|"NF"|"$0}' /home/wwwlogs/access.log
/home/wwwlogs/access.log|9979|12|150.109.77.71
/home/wwwlogs/access.log|9980|20|150.109.77.71
/home/wwwlogs/access.log|9981|20|150.109.77.71
/home/wwwlogs/access.log|9982|22|156.220.107.221
/home/wwwlogs/access.log|9983|22|138.204.135.251
/home/wwwlogs/access.log|9984|13|148.70.179.32
/home/wwwlogs/access.log|9985|18|148.70.243.161
/home/wwwlogs/access.log|9986|18|148.70.243.161
/home/wwwlogs/access.log|9987|18|148.70.243.161
/home/wwwlogs/access.log|9988|12|201.174.10.7
/home/wwwlogs/access.log|9989|13|148.70.179.32
/home/wwwlogs/access.log|9990|23|220.181.108.143
/home/wwwlogs/access.log|9991|31|111.206.198.18
/home/wwwlogs/access.log|10000|13|170.238.36.20
Печать журналов доступа HTTP код статуса
awk -F" " '{print $9}' /home/wwwlogs/access.log
404
404
404
301
200
200
200
301
200
301
301
200
200
301
200
404
Для нескольких комплексных точек, код состояния печати Распределение и сортируют по размеру
?????
WK -F «» '{} 9 Печать $. /Home/wwwlogs/access.log | Сортировка | уник -C | Сортировать -NR
4939 404
4497 в 200 составляет
332 301
120 499
36 400
32 "-"
18 166
16 403
. 9 405
···
может выглядеть распределенную TOP доступа IP, чтобы проанализировать ли ползания IP сайта
awk -F" " '{print $1}' /home/wwwlogs/access.log | sort | uniq -c | sort -nr | head -50
913 111.231.201.221
912 140.143.147.236
908 106.13.83.26
906 54.179.142.122
668 185.234.217.115
664 148.70.179.32
275 125.76.225.11
240 123.151.144.37
110 61.241.50.63
108 101.89.19.140
102 59.36.132.240
69 182.254.52.17
42 61.162.214.195
39 183.192.179.16
39 148.70.46.47
38 14.18.182.223
38 103.119.45.49
27 58.251.121.186
26 68.183.147.213
26 59.36.119.227
26 51.83.234.51
24 144.91.94.150
Поток через бревна нижнего доступа рассчитывается ежедневно, по оценкам, потребности в пропускной способности будущего
awk -F" " 'BEGIN {sum=0} {sum=sum+$10} END {print sum/1024/1024"M"}' /home/wwwlogs/access.log
38.7885M
AWK описание BEGIN , END, это хорошо понималось
BEGIN {} заявления перед выполнением
{} обработки оператор выполняется для каждой строки в
конце заявления {После всех строк , которые будут выполняться}
AWK плановое техническое обслуживание в системе должна быть наиболее используемыми командами. Особенно результаты анализа простого журнала доступ может быть получен AWK хотят чувствовать себя в большинстве сценариев.