python指令碼方式每分鐘生成日誌
阿新 • • 發佈:2018-11-01
vi generate.py
程式碼
#coding=UTF-8
import random
import time
# url
url_paths = [
"class/112.html",
"class/128.html",
"class/145.html",
"class/146.html",
"class/131.html",
"class/130.html",
"learn/821",
"course/list"
]
# 搜尋引擎
http_referers = [
"http://www.baidu.com/s?wd={query}" ,
"https://www.sougou.com/web?query={query}",
"http://cn.bing.com/search?q={query}",
"https://search.yahoo.com/search?q={query}"
]
# 搜尋的課程名字
search_keyword = [
"Spark SQL實戰",
"Hadoop基礎",
"Storm實戰",
"Spark Streaming實戰",
"大資料面試"
]
#IP
ip_silces = [132,158,192,10,20,55,89,165,153 ,189,5,42,87,8,99,199,64,12,214,220,55,4,78,63]
# 狀態碼
status_codes = ["200","404","500"]
def sample_url():
return random.sample(url_paths,1)[0]
def sample_ip():
slice = random.sample(ip_silces,4)
return ".".join([str(item) for item in slice])
def sample_referer():
if random.uniform(0,1) > 0.2:
return "-"
refer_str = random.sample(http_referers,1)
query_str = random.sample(search_keyword,1)
return refer_str[0].format(query = query_str[0])
def sample_status_code():
return random.sample(status_codes,1)[0]
def generate_log(count = 100):
time_str = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())
f = open("/root/zoujc/logs.txt","w+")
while count >= 1:
query_log = "{ip}\t{local_time}\t\"GET {url} HTTP/1.1\"\t{statu_code}\t{referer}".format(local_time = time_str,url = sample_url(),ip = sample_ip(),referer = sample_referer(),statu_code = sample_status_code())
print(query_log)
f.write(query_log + "\n")
count = count - 1
if __name__ == '__main__':
generate_log()
執行程式碼
python generate.py
用crontab把python程式做成定時執行(每分鐘)
touch log_generator.sh
chmod u+x log_generator.sh
vi log_generator.sh 我是在當前目錄下
配置到crontab中
crontab -e */1 * * * * /root/zoujc/log_generator.sh >> /root/zoujc/flume/crontabLog_generator
檢視是否每分鐘一次執行了生成日誌的python程式碼
cd /zoujc/flume
tail -f generateLog.log