python 常用的模块 optparse与ConfigParser
#!/usr/bin/env python#coding:utf-8
#Date: 2015-09-09
#Author:king.gp
################描述#################
#
#查找是否设置此kye,有则跳过
#如果没有设置此kye,并将操作写入/var/log/redis_add_pause_domain_list.log中
#如果恢复指定的存在的key,也要写入到/var/log/redis_retrieve_pause_domain_list.log
#
####################################
import redis
import datetime
import os
import sys
from optparse import OptionParser
def Opt ():
parser=OptionParser("Usage: %prog -o option -d domain -s subject")
parser.add_option("-d",
"--domain",
dest="domain",
default=False,
action="store_true",
help="special domain_name or domain_name/user",)
parser.add_option("-s",
"--subject",
dest="subject",
default=False,
action="store_true",
help="special subject for record operational log",)
parser.add_option("-o",
"--operation",
dest="operation",
default=False,
action="store_true",
help="special operation Del or Insert Key ",)
options,args = parser.parse_args()
return options,args,parser
#以上是定义参数与选项,返回对象与参数
def Connect_Redis(options,hostname,parser,*argv):
r = redis.Redis(host='localhost',port=6379,db='0')
if options.domain:
key_string = hostname+'/Conf/MailBox/'+argv+'/Status_Pause_All'
key_list=r.keys(key_string)
if (options.operation andargv=='search'):
if len(key_list) > 0 :
print key_list+' Existing'
else:
print key_string+' Not Existing'
sys.exit(0)
if (options.operation and options.subject and argv=='delete'):
iflen(key_list)>0:
r.delete(key_string)
#print key_string
print key_string+' alrealy Del!'
with open('/var/log/redis_retrieve_pause_domain_list.log','a') as f:
now = datetime.datetime.now()
date_string = now.strftime("%Y-%m-%d %H:%M:%S")
f.write(date_string+'\t'+argv+'\t'+key_string+'\n')
sys.exit(0)
else:
print key_string+' Not Existing'
sys.exit(0)
elif (options.operation and options.subject and argv =='insert'):
r.set(key_string,'1')
print key_string+' alrealy Set!'
with open('/var/log/redis_add_pause_domain_list.log','a') as f:
now = datetime.datetime.now()
date_string = now.strftime("%Y-%m-%d %H:%M:%S")
f.write(date_string+'\t'+argv+'\t'+key_string+'\n')
sys.exit(0)
else:
parser.error("domain or subject not empty")
else:
sys.exit(0)
def Get_Host_Name():
host = os.popen('echo $HOSTNAME')
hostname = host.read().strip()
if len(hostname) > 4:
hostname = hostname.split('.')
return hostname
def main():
options,args,parser=Opt()
if args:
keys=tuple(args)
hostname=Get_Host_Name()
Connect_Redis(options,hostname,parser,*keys)
else :
parser.error("Usage: %prog -o option -d domain -s subject")
if __name__ == '__main__':
main()
页:
[1]