杀毒软件更新相关

用了一个杀毒软件的更新工具,不过它不会自动删除过时的。然后用刚学的python折腾了一个。。。

#!/usr/bin/python

import os
import shutil

xxx_dir = "/var/www/xxx/rel"
tmp_dir = {}

#run update
os.system('sh /etc/xxx/start.sh')

for i in os.listdir(xxx_dir):
  tmp = i.split('_')
  tmp_key = "_".join(tmp[:-1])
  if tmp_dir.has_key(tmp_key): #exist key value
    if int(tmp_dir[tmp_key]) < int(tmp[-1]):
      #shutil.rmtree 可以直接删除目录
      shutil.rmtree(xxx_dir + "/" + tmp_key + "_" + tmp_dir[tmp_key])
      tmp_dir[tmp_key] = tmp[-1]
    else:
      shutil.rmtree(xxx_dir + "/" + tmp_key + "_" + tmp[-1])
  else:
    tmp_dir[tmp_key] = tmp[-1]

print "Update OK"


上面那个是用另一个工具更新时用的, 那个现在不好用了,又换了一个服务器. 然后再折腾一个脚本.

本来不想折腾,不过杀毒软件用相关许可去更新时会进程卡死,奇怪. 于是这样折腾了...

#!/usr/bin/python
#-*- coding:utf-8 -*-

import os, urllib, sys

update_ser = 'http://user:[email protected]_ser.com/'
update_dst = '/var/www' #用来给客户端更新的位置 
update_tmp = '/tmp'

def down_file(url, dst):
  urllib.urlretrieve(url, dst)  

def check_ver(curr_nup):
  ver = ''
  new_nup = []
  f = open(update_tmp + "/update.ver")
  for i in f:
    ver = ver + i
    if i.startswith("file="):
      nup = i.split('=')[-1].strip()
      new_nup.append(nup)
      if nup in curr_nup:
        pass
      else:
        down_file(update_ser + nup, nup)
  f.close()

  for i in curr_nup:
    if i in new_nup:
      pass
    else:
      os.remove(i)

  with open(update_dst + "/update.ver", 'w') as f:
    f.write(ver)

os.chdir(update_tmp)
down_file(update_ser + "update.ver", "update.ver")

if os.path.isfile(update_tmp + "/update.ver"):
  os.chdir(update_dst)
  check_ver(os.listdir(update_dst))
  print "Download OK"
  sys.exit()
else:
  print "Download Update.ver ERROR"
  sys.exit()


你可能感兴趣的:(python,shutil)