0

McAfeeがインストールされたPCを設定していますが、アップデート(DAT)をダウンロードするためにプログラムの実行を停止する必要があると言われました。McAfee Webサイトからdatファイルをダウンロードし、このファイルをMcAfeeがアクセスしてインストールできるサーバーに配置するスクリプトを作成する必要があります。

過去に誰かがこれをしたことがありますか。

4

1 に答える 1

1

私は実際にこれを行いました。私はこのスクリプトを1、2年テストしていませんが、これが私が使用していたものです。これは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@yourdomain.com")
    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()
于 2012-04-03T09:35:55.347 に答える