python 常用自动化脚本-python3.6.1
1.统计出每个 IP 的访问量有多少?(即:查询日志文件中的各访问 IP 出现的访问次数)(从日志文件中查找)
[root@localhost ~]# cat b.log
36.57.131.83 - - [07/Feb/2018:09:28:55 +0800] "GET /feebill/qportImages/images/down_46.jpg HTTP/1.1" 200 361
36.57.131.83 - - [07/Feb/2018:09:28:55 +0800] "POST /feebill/findVersion.action HTTP/1.1" 200 31
36.57.131.83 - - [07/Feb/2018:09:28:56 +0800] "GET /feebill/qportImages/images/qportsupport_13.jpg HTTP/1.1" 200 342
111.202.189.61 - - [07/Feb/2018:09:59:03 +0800] "GET /idecl-sup/tab.htm?ticket=ST-118968-2b5LbpCeTAvNHWyBS9tr-service HTTP/1.1"
500 3059
124.42.15.95 - - [07/Feb/2018:12:14:02 +0800] "POST /feebill/top.jsp HTTP/1.1" 302 -
124.42.15.95 - - [07/Feb/2018:12:14:02 +0800] "POST /idecl-sup/UserLogin HTTP/1.1" 200 -
58.246.221.75 - - [07/Feb/2018:08:59:55 +0800] "GET /idecl-sup/login.jsp HTTP/1.1" 302 -
[root@localhost ~]# cat a.py
#!/usr/bin/env python3
list = []
f = open('/root/b.log') #以读的方式打开 log 日志文件
for i in f.readlines():
ip = i.split()[0] #将每一行的内容以空格方式分成列表,并只获取每一行的第一列各 IP(根据情况看 IP 是第几列)
list.append(ip)
f.close()
for j in list: #j 是列表的各个元素值(各个 IP)
num = list.count(j) #统计列表中各元素出现的次数
print ('IP%s 访问次数为: %s' %(j,num)) #打印出各 IP 和各 IP 出现的次数
[root@localhost ~]# python3 a.py
IP36.57.131.83 访问次数为: 3
IP36.57.131.83 访问次数为: 3
IP36.57.131.83 访问次数为: 3
IP111.202.189.61 访问次数为: 1
IP124.42.15.95 访问次数为: 2
IP124.42.15.95 访问次数为: 2
IP58.246.221.75 访问次数为: 1
2.请按照这样的日期格式(xxxx-xx-xx)每日在/tmp/目录下生成一个文件,例如今天生成的文件为 2017-09-23.log, 并且把磁盘的使用情况(磁
盘空间查看情况)写到到这个文件中。
[root@localhost ~]# cat a.py
#!/usr/bin/env python3
import time
import os
current_time = time.strftime('%Y-%m-%d') #获取当前系统的日期并格式化处理,自定义时间,当地北京标准时间
disk_space = os.popen('df -h').readlines() #调用系统命令查看磁盘空间,并每行每行读取出来作为列表,每行为一个列表元素分隔开来
str = ''.join(disk_space) #将列表的每行每行读取的磁盘空间拼接一下,因为自动能换行,拼接符号可以为:空
f = open('/tmp/'+current_time+'.log','w') #以写的方式打开一个文件,注意有字符串进行路径拼接
f.write('%s' % str)
print ('disk infomations write /tmp/'+current_time+'.log','successful')
f.flush()
f.close()