免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1983 | 回复: 0
打印 上一主题 下一主题

ftp上传脚本 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-04-13 10:11 |只看该作者 |倒序浏览
#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
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP