2012-04-03 43 views
0

我正在設置安裝有McAfee的PC,並被告知我需要停止正在運行的程序以下載更新(DAT)。我需要創建一個腳本來從McAfee網站下載dat文件,並將此文件放在McAfee可以訪問並安裝該文件的服務器上。邁克菲更新下載腳本

有沒有人在過去做過這件事。

回答

1

我其實已經這樣做了。我在一兩年內沒有測試過這個腳本,但這是我正在使用的。這不是在Powershell中編寫的,但如果您更改目錄,我認爲這可以在Windows上運行。

#!/usr/bin/python 

import ftplib 
import tarfile 
import shutil 
import os 
import re 
import time 

scannerDir = "/usr/local/uvscan/" 
tmp = "/tmp/avscanner/" 

def downloadDat(): 
    datfile = "" 
    r = re.compile("^avvdat") 
    ftp = ftplib.FTP("ftp.nai.com", "anonymous", "[email protected]") 
    ftp.cwd("/pub/datfiles/english") 
    list = ftp.nlst() 
    for x in list: 
     if r.search(x): 
      datFile = x 
    f = open(tmp + "datfile", 'wb') 
    ftp.retrbinary("RETR " + datFile, f.write) 
    f.close() 
    ftp.quit() 

def unpackDat(): 
    tFile = tarfile.open(tmp + "datfile", 'r') 
    for f in tFile.getnames(): 
     tFile.extract(f, tmp) 

def createDirs(): 
    if os.path.isdir(tmp) == False: 
     os.mkdir(tmp, 0700) 
    os.chown(tmp, 0, 95) 
    os.chmod(tmp, 0755) 

def doCleanup(): 
    shutil.rmtree(tmp) 

def installFiles(): 
    shutil.copyfile(tmp + "/avvclean.dat", scannerDir + "/avvclean.dat") 
    shutil.copyfile(tmp + "/avvnames.dat", scannerDir + "/avvnames.dat") 
    shutil.copyfile(tmp + "/avvscan.dat", scannerDir + "/avvscan.dat")   

def isOld(): 
    if os.path.isfile(scannerDir + "/avvclean.dat"): 
     if time.time() - os.path.getctime(scannerDir + "/avvclean.dat") < 80000: 
      return True 
     else: 
      return False 
    else: 
     return True 

def main(): 
    if isOld(): 
     createDirs() 
     downloadDat() 
     unpackDat() 
     installFiles() 
     doCleanup() 

if __name__ == "__main__": 
    main() 
+0

這是什麼語言 – Lalajee 2012-04-03 09:48:42

+0

我不斷收到這些錯誤。 Traceback(最近一次調用最後一次): 文件「D:\ Script \ mcAfee Script2.py」,第64行,在 main() 文件「D:\ Script \ mcAfee Script2.py」 createDirs() 文件「D:\ Script \ mcAfee Script2.py」,第35行,在createDirs中 os.chown(tmp,0,95) AttributeError:'模塊'對象沒有屬性'chown' – Lalajee 2012-04-03 10:04:27

+0

此腳本用於在Linux上運行。可能只需要移除chown行或找到與Windows相同的行。 – jdabney 2012-04-03 18:25:14