小脚本

1.找出某目录下所有以‘.log’结尾的文件并删除

1 import os
2 print(os.getcwd())
3 os.chdir(r'文件所在目录')
4 li = os.listdir()#列出该目录下的所有文件
5 for i in li:
6     if i.endswith('.log'):  #找出所有以.log结尾的文件并删除
7         os.remove(i)

 2.利用paramiko批量远程登录服务器执行命令,并返回结果

 1 import  commands
 2 import subprocess
 3 import paramiko
 4 import time
 5 host_lists=(
 6 ('192.168.1.12'),
 7 ('192.168.1.240'),
 8 ('172.168.96.3'),
 9 ('192.168.1.12'),
10 ('172.168.96.3'),
11 ('192.68.23.25'),
12 ('10.236.53.69'),
13 ('11.23.36.33'),
14 )
15 
16 
17 def getServerInfo(host,user,password,services):
18     conn=paramiko.SSHClient()
19     conn.load_system_host_keys()
20     conn.set_missing_host_key_policy(paramiko.AutoAddPolicy())
21     conn.connect(hostname=host,port=22,username=user,password=password,allow_agent=False,look_for_keys=False)
22     stdin,stdout,stderr=conn.exec_command("ps aux|awk '{print $3,$4,$5,$6,$11}'|grep %s" % services,timeout=5)#要执行的命令
23     info=stdout.read()  # 在python3中,获取的info值是字节型(b'dsfdfffd'),要decode一下
info = info.decode('utf-8')
 conn.close()
24 return info 25 def ping_test(host): 26 p = commands.getoutput("ping "+host+" -w 1|wc -l") #指定ping一秒 27 if p =='6': #如果能ping通 28 info=getServerInfo(host,'root','111111','pick') 29 info_list=info.split() 30 print "%s\t\t%s\t\t%s\t\t%s\t\t%s\t\t%s\t"%(host,info_list[0],info_list[1],info_list[2],info_list[3],info_list[4]), 31 with open("yes.log","a+") as f: 32 f.write(host+'\n') 33 elif p == '5': #如果不能ping通 34 print "%s\t\tNO\t\tNO\t\tNO\t\tNO\t\tNO\t"% (host), 35 with open("no.log","a+") as f_no: 36 f_no.write(host+'\n') 37 def out_info(): 38 now1 = time.time() 39 ping_test(host) 40 now2 = time.time() 41 now3 = now2 - now1 42 print "\t",now3 43 if __name__ == '__main__': 44 print"ip %CPU %MEM VSZ RSS services time_use(s)" 45 46 for host in host_lists: 47 try: 48 out_info() 49 except: 50 print host," NO_ssh" 51 with open("no_ssh.log","a+") as f_except: 52 f_except.write(host+'\n')

 3.paramiko/client.py

第220行设置网络不通超时时间

4.设置输出颜色

格式:\033[显示方式;前景色;背景色m
 
说明:
前景色            背景色           颜色
---------------------------------------
30                40              黑色
31                41              红色
32                42              绿色
33                43              黃色
34                44              蓝色
35                45              紫红色
36                46              青蓝色
37                47              白色
显示方式           意义
-------------------------
0                终端默认设置
1                高亮显示
4                使用下划线
5                闪烁
7                反白显示
8                不可见
 
例子:
\033[1;31;40m    <!--1-高亮显示 31-前景色红色  40-背景色黑色-->
\033[0m          <!--采用终端默认设置,即取消颜色设置-->   
复制代码
  • 备注:
    • \033[1;31;40m: 代表接下来输出内容为:高亮显示,前景色为红色,背景色被黑色。
    • \033[0m:代表接下来的输入内容为终端默认设置,也就是取消之前的颜色设置,如果没有这个,接下来的输出,都是上面的设置。
  • 例子:
password = raw_input('请输入用户密码,如果不设置,\033[5;33;40m请回车!\033[0m。默认密码为: NewPassWord2016)')
    • 我的设置是,闪烁、前景色为黄色,背景色为黑色。输出的效果是:”请回车“  这三个字一直在闪烁,且字体为黄色,背景色为黑色。

5.获取当前局域网内的所有在用ip

 1 ##python 2.7
 2 import platform
 3 import sys
 4 import os
 5 import time
 6 import thread
 7 
 8 
 9 def get_os():
10     os = platform.system()
11     if os == "Windows":
12         return "n"
13     else:
14         return "c"
15 
16 
17 def ping_ip(ip_str):
18     cmd = ["ping", "-{op}".format(op=get_os()),"1", ip_str]
19     output = os.popen(" ".join(cmd)).readlines()
20 
21     flag = False
22     for line in list(output):
23         if not line:
24             continue
25         if str(line).upper().find("TTL") >= 0:
26             flag = True
27             break
28     if flag:
29         print "ip: %s is useing ***" % ip_str
30 
31 
32 def find_ip(ip_prefix):
33     for i in range(1, 256):
34         ip = '%s.%s' % (ip_prefix, i)
35         thread.start_new_thread(ping_ip, (ip,))
36         time.sleep(0.3)
37 
38 
39 if __name__ == "__main__":
40     commandargs = raw_input( "Enter start IP  [For example:192.168.1.1] >>>")
41     print "start time %s" % time.ctime()
42     commandargs = str(commandargs)
43     args = "".join(commandargs)
44     ip_prefix = '.'.join(args.split('.')[:-1])
45     find_ip(ip_prefix)
46     print "end time %s" % time.ctime()

 6.根据ip地址获取当前位置信息(调用百度地图接口)

基于python3.5

from urllib import request
import gevent,time
import json
from gevent import monkey
monkey.patch_all() #把当前程序的所有的io操作单独的做上标记,这样gevent就可以识别到io操作了

def f(url):
    print('GET: %s' % url)
    resp = request.urlopen(url)
    data = resp.read().decode()
    with open('ip.txt','w') as f:
        f.write(data)
    with open("ip.txt","r") as f:
        for i in f:        #注意,json反序列化的时候要迭代才可以,否则报错
            c = json.loads(i)
        print(type(c),c)
        print(c["address"])
    print('%d bytes received from %s.' % (len(data), url))

async_time_start = time.time()
gevent.joinall([
#     gevent.spawn(f, 'https://www.python.org/'),
#     gevent.spawn(f, 'https://www.yahoo.com/'),
#     gevent.spawn(f, 'https://github.com/'),
      gevent.spawn(f, 'http://api.map.baidu.com/location/ip?ak=NKrVZ3qLBjSG47KKMjIsfNW3CSwrp4GT&coor=bd09ll',)
])
print("异步cost",time.time() - async_time_start)

输出:
GET: http://api.map.baidu.com/location/ip?ak=NKrVZ3qLBjSG47KKMjIsfNW3CSwrp4GT&coor=bd09ll
<class 'dict'> {'address': 'CN|山东|济宁|None|UNICOM|0|0', 'content': {'point': {'x': '116.60079762', 'y': '35.40212166'}, 'address': '山东省济宁市', 'address_detail': {'district': '', 'street_number': '', 'province': '山东省', 'city_code': 286, 'city': '济宁市', 'street': ''}}, 'status': 0}
CN|山东|济宁|None|UNICOM|0|0
317 bytes received from http://api.map.baidu.com/location/ip?ak=NKrVZ3qLBjSG47KKMjIsfNW3CSwrp4GT&coor=bd09ll.
异步cost 0.062041282653808594

 

基于python2.7

 1 # encoding=utf8
 2 
 3 import json
 4 import urllib2
 5 import httplib
 6 #调用百度地图接口
 7 url = 'http://api.map.baidu.com/location/ip?ak=NKrVZ3qLBjSG47KKMjIsfNW3CSwrp4GT&coor=bd09ll'
 8 temp = urllib2.urlopen(url)
 9 hjson = json.loads(temp.read())
10 #print hjson
11 province = hjson['content']['address_detail']['province']
12 city = hjson['content']['address_detail']['city']
13 city_code = hjson['content']['address_detail']['city_code']
14 address = hjson['content']['address']
15 point = hjson['content']['point']
16 aa = hjson['address']
17 print "城市代码:",city_code
18 print "地址:",address
19 print "纬度:",point['y']
20 print '经度:',point['x']
21 print "详细(包含地址及运营商信息):",aa

 7.进度条

 

 1 #!usr/bin/env/python
 2 # -*- coding:utf-8 -*-
 3 # from  wangteng
 4 import time
 5 import sys
 6 for i in range(101):
 7     sys.stdout.write('\r')
 8     sys.stdout.write("%s%% |%s" %(int(i%101), int(i%101)*'#'))
 9     sys.stdout.flush()
10     time.sleep(0.5)
11 
12 sys.stdout.write('\n')
 1 #!usr/bin/env/python
 2 # -*- coding:utf-8 -*-
 3 # from  wangteng
 4 import time
 5 import sys
 6 for i in range(101):
 7     sys.stdout.write('\r')
 8     sys.stdout.write("%s%% |%s" %(int(i%101), int(i%101)*'#'))
 9     sys.stdout.flush()
10     time.sleep(0.5)
11 
12 sys.stdout.write('\n')

可以根据以下代码修改,将分子分母都修改为变量
zi = 67
fu = 103
a = zi/fu*100
a = int(a)
print(a*'#')
a = str(a)
print(a[:5],'%')

 8.mysql表插入数据时自动添加插入时间,只需要在原表上再加一个字段即可TIMESTAMP

    ALTER TABLE t2 ADD nowtime TIMESTAMP default CURRENT_TIMESTAMP;

 9.html每5秒自动刷新页面

<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <META HTTP-EQUIV="Refresh" CONTENT="5">
</head>

10.html修改时间格式

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <META HTTP-EQUIV="Refresh" CONTENT="5">
</head>
<body>
主要是script代码
<script>
function date2str(x,y) {
    var z = {M:x.getMonth()+1,d:x.getDate(),h:x.getHours(),m:x.getMinutes(),s:x.getSeconds()};
    y = y.replace(/(M+|d+|h+|m+|s+)/g,function(v) {return ((v.length>1?"0":"")+eval('z.'+v.slice(-1))).slice(-2)});
    return y.replace(/(y+)/g,function(v) {return x.getFullYear().toString().slice(-v.length)});
}
var d = new Date('Mon Feb 06 2017 16:21:44');自定义一个时间
alert(date2str(d,"yyyy-MM-dd hh:mm:ss"));
alert(date2str(d,"yyyy-M-d h:m:s"));
</script>
</body>
</html>

 

posted @ 2016-09-08 10:50  明天OoO你好  阅读(347)  评论(0编辑  收藏  举报