- 论坛徽章:
- 0
|
#auto update
import os,time,socket,sys,datetime
from ftplib import FTP
import ftplib
########### GET IP TO NAMED DIR
def GetIpLastNum():
myname=socket.getfqdn(socket.gethostname())
myaddr=socket.gethostbyname(myname)
tp=myaddr.split('.')
return tp[-1]
###########WRITE LOG FOR OPARETION
def PutOutinfo(LogPath,OutInfo):
basename=os.path.basename(LogPath)
tmIO=time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())
try:
print "11111"
LPT=open(basename,'a')
LPT.writelines(tmIO+"\n")
LPT.writelines(OutInfo+"\n")
LPT.close()
except:
try:
LPT=open(basename,'w')
LPT.writelines(tmIO+"\n")
LPT.writelines(OutInfo+"\n")
LPT.close()
print "00000"
except:
print "Can't write log file !!"
sys.exit()
###########GET UPDATE FILE LIST
def GetFileList(GetFilePath):
Ndate=datetime.date.today()
FileList=[]
print os.listdir(GetFilePath)
for t in os.listdir(GetFilePath):
if os.path.isfile(GetFilePath+"
\\"+t
):
if t.split(".")[-1]=="log":
StatInfo=os.stat(GetFilePath+"
\\"+t
)
MTimeT=time.localtime(StatInfo.st_mtime)
MTime=datetime.date(MTimeT[0],MTimeT[1],MTimeT[2])
Cday=int(str(abs(Ndate-MTime)).split(" ")[0])
print Cday
if Cday > 0:
FileList.append(GetFilePath+"
\\"+t
)
print FileList
return FileList
###########FTP UP DATA OPERATION
def FtpUpDate(FilePath,FtpHost,FtpUs,FtpPw):
tm=time.strftime("%y%m%d",time.localtime())
iptm=GetIpLastNum()
ftp=FTP(FtpHost)
ftp.login(FtpUs,FtpPw
)
try:
[url=ftp://ftp.cwd('./'+iptm+"_"+tm]ftp.cwd('./'+iptm+"_"+tm[/url]
)
except ftplib.error_perm:
try:
[url=ftp://ftp.mkd('./'+iptm+"_"+tm]ftp.mkd('./'+iptm+"_"+tm[/url]
)
[url=ftp://ftp.cwd('./'+iptm+"_"+tm]ftp.cwd('./'+iptm+"_"+tm[/url]
)
except ftplib.error_perm:
print "Create directory false ,Please check FTP perfomable!!"
pass
pt=os.path.basename(FilePath)
UpFile=open(FilePath,'rb')
try:
[url=ftp://ftp.storbinary('STOR]ftp.storbinary('STOR[/url]
'+pt,UpFile)
except:
print "Up file false!!"
sys.exit()
print "update succeed"
UpFile.close()
ftp.close
()
return 0
########################DELECT FILE ,IF UP SUCCEED
def DelFile(DelFilePath):
os.remove(DelFilePath)
return 0
#########################
if __name__=="__main__":
UpFileDir=raw_input("Please Input Log directroy Path: ")
UFDList=UpFileDir.split(",")
FtpAdd=raw_input("Please Input FTP server address:")
FtpU=raw_input("Please Input FTP username: ")
FtpP=raw_input("Please Input FTP password: ")
for UFDTemp in UFDList:
FileList=GetFileList(UFDTemp)
print UFDTemp
print FileList
for FileListTemp in FileList:
print FileListTemp
tm=FtpUpDate(FileListTemp,FtpAdd,FtpU,FtpP)
if tm==0:
dtm=DelFile(FileListTemp)
if dtm==0:
PutOutinfo("e:\\UpFTPLog.log","DELETE "+FileListTemp+" succeed!")
我的第一个python 脚本。该脚本的功能是,上传指定多个log文件夹到指定ftp服务器。
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/42727/showart_1898970.html |
|