shell脚本模拟10w条nginx访问日志,要求日志时最近3年的访问记录,IP地址为公网地址,请求的URI不同,发送的带宽,状态码,设备类型都要模拟出来

发布于 2024-03-14  1294 次阅读


#!/bin/bash
##############################################################
# File Name:100000.sh
# Version:ubt22.04
# Author:maixiao
# Organization:.....
# Desc:
##############################################################


sj_jilu(){

mounth=`shuf -e Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec -n1`
method=(GET POST PUT DELETE)
path=(/ /koten.html /zhibo.html /youxi.html /linux.html)
status=(200 301 302 403 404)
UA=(    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36" \
	"Mozilla/5.0 (iPad; CPU OS 13_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/87.0.4280.77 Mobile/15E148 Safari/604.1" \
	"Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1" \
	"Mozilla/5.0 (Linux; Android 8.0.0; SM-G955U Build/R16NW) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Mobile Safari/537.36" )


jilu="$((RANDOM % 161 + 11)).$((RANDOM % 256)).$((RANDOM % 256)).$((RANDOM % 256)) - - [$((RANDOM % 31))/$mounth/$((RANDOM % 16 + 2008)):`printf "%02d\n" $((RANDOM % 24))`:`printf "%02d\n" $((RANDOM % 60))`:`printf "%02d\n" $((RANDOM % 60))` +0800] \"${method[$((RANDOM % 4))]} ${path[$((RANDOM % 5))]} HTTP/1.1\" ${status[$((RANDOM % 5))]} 555 \"-\" \"${UA[$((RANDOM % 4))]}\" \"-\""

	echo $jilu >> /tmp/nginx.log
}

while true
do
	{
	sj_jilu
	} &
done

bash 运行

曾许人间第一流
最后更新于 2024-08-28