$u = $l = 0;
$d = count($matrix) -1;
$r = count($matrix[0]) -1;
$result = [];
while (true) {
for ($i = $l;$i <= $r;++$i) {
array_push($result,$matrix[$u][$i]);
}
if(++ $u > $d) {
break;
}
for ($i = $u ;$i<= $d;++$i) {
array_push($result,$matrix[$i][$r]);
}
if(--$r < $l) break;
for ($i = $r; $i >= $l;--$i) {
array_push($result,$matrix[$d][$i]);
}
if(--$d < $u) break;
for ($i =$d ;$i>= $u;--$i) {
array_push($result,$matrix[$i][$l]);
}
if(++$l > $r) break;
}
var_dump($result);
nginx日志统计
统计最近3天nginx日志responseCode码 不等于200的数量 日志格式如下
127.0.0.0.1 - - [12/Nov/2019:00:00:27 +0800] "POST /2html HTTP/2.0" 200
awk '{print $4,$0}' access.log | grep --perl-regexp "\[11/Nov/2019:[1-9][0-1]:" |awk '{print $10}'| grep -v 200 |wc -l
查找7月14日访问log导出到19.log文件中
cat access.log | grep "17/Jul/2019" | sed -n '/00:00:00/,/23:59:59/p' > /home/17.log
查看访问量前10的IP
awk '{print $1}' 17.log | sort | uniq -c | sort -nr | head -n 10
查看访问前10的URL
awk '{print $11}' access.log | sort | uniq -c | sort -nr | head -n 10
查询访问最频繁的URL
awk '{print $7}' access.log | sort | uniq -c | sort -n -k 1 -r | more
查询访问最频繁的IP
awk '{print $1}' access.log | sort | uniq -c | sort -n -k 1 -r | more
根据访问IP统计UV
awk '{print $1}' access.log | sort | uniq -c | wc -l
统计访问URL统计PV
awk '{print $7}' access.log | wc -l
根据时间段统计查看日志
cat access.log | sed -n '/17\/Jul\/2017:12/,/17\/Jul\/2017:13/p' | more