杀毒软件更新相关

简介:

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/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  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"


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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#!/usr/bin/env python
 
import  urllib
import  hashlib
import  os
import  sys
import  time
 
www  =  "C:\\Python27\\nod32\\"
ser  =  "http://user:pass@update.com/"
num  =  0
 
def  reporthook(count, block_size, total_size):  #下载进度
     global  start_time
     if  count  = =  0 :
         start_time  =  time.time()
         return
     duration  =  time.time()  -  start_time
     progress_size  =  int (count  *  block_size)
     speed  =  int (progress_size  /  ( 1024  *  duration))
     percent  =  int (count  *  block_size  *  100  /  total_size)
     if  percent >  100 : percent  =  100
     sys.stdout.write( "\r...%d%%, %d KB, %d KB/s, %d seconds passed, Filesize %d KB"  %
                     (percent, progress_size / 1024 , speed, duration, total_size / 1024 ))
     sys.stdout.flush()
     
def  download(u, f, n):
     try :
         print  "\n" ,n,os.sep.join(f.split(os.sep)[ - 2 :])
         urllib.urlretrieve(u, f, reporthook)
     except :
         print  "Download %s Failed"  %  os.sep.join(f.split(os.sep)[ - 2 :])
         sys.exit( 1 )
 
# cb54b290a1a825b29403f7ad285837b4  /var/www/html/v4-rel-sta/mod_008_epfw/em008_64_n3.nup
if  __name__  = =  "__main__" :
     download(ser  +  "nod32.md5" , www  +  "nod32.md5" 0 )
     if  os.path.isfile(www  +  "nod32.md5" ):
         with  open (www  +  "nod32.md5" ) as f:
             for  in  f:
                 num  + =  1
                 if  "/var/www/html"  not  in  i:  continue
                 md5, url, filename, dirname  =  i.split()[ 0 ], ser  +  "/" .join(i.split()[ 1 ].split( "/" )[ 4 :]), www  +  os.sep.join(i.split()[ 1 ].split( "/" )[ 4 :]), www  +  os.sep.join(i.split()[ 1 ].split( "/" )[ 4 : - 1 ])
                 if  not  os.path.isdir(dirname):
                     os.makedirs(dirname)
                 if  os.path.isfile(filename):
                     # 查文件md5时,读文件要用 rb 模式
                     with  open (filename, "rb" ) as n:
                         if  hashlib.md5(n.read()).hexdigest() ! =  md5:
                             download(url, filename, num)
                 else :
                     download(url, filename, num)


另外:rsync 时 ssh端口不是22

1
rsync  -az --progress  '-e ssh -p 1234'  /var/www/html/ * 1.2.3.4: /home/nod32/


本文转自 nonono11 51CTO博客,原文链接:http://blog.51cto.com/abian/1582886,如需转载请自行联系原作者
相关文章
|
数据库 数据中心 C++
09jqGrid - 数据格式化
09jqGrid - 数据格式化
116 0
|
关系型数据库 MySQL 网络安全
连接MySQL错误:Can't connect to MySQL server (10060)
版权声明:本文为 testcs_dn(微wx笑) 原创文章,非商用自由转载-保持署名-注明出处,谢谢。 https://blog.csdn.net/testcs_dn/article/details/51406712 ...
3263 0
|
SQL 关系型数据库 MySQL
数据管理DMS重磅发布:移动版,随时随地管理云端数据
阿里云数据管理DMS 移动版已于2017.8.31发布,一期提供RDS MySQL和ECS自建MySQL的数据管理服务,提供实例列表、库/表/列管理、SQL查询、实时性能、实例会话和授权审计等功能。
38075 0
|
弹性计算 监控 固态存储
阿里云RDS vs 自建MySQL,这篇评测终结你的选择困难症!
云,为IT基础设施的构建带来很大的便利性。数据库,作为云中非常重要的一类产品,正有越来越多的客户选择使用。但在使用云端数据库时,经常有两类做法:一是通过ECS自建数据,二是直接使用云提供的数据库产品。那么这两类做法,有什么差异?用户又该如何选择呢?
6970 0
阿里云RDS vs 自建MySQL,这篇评测终结你的选择困难症!
|
存储 监控 关系型数据库
数据运营时代,如何基于AnalyticDB构建企业实时数仓?
万事万物每时每刻都在产生大量的数据,数据无处不在,如何降低企业大数据的建设门槛,使得大数据分析成为一种人人都可以获得的普惠能力呢?在本文中,阿里云高级算法专家缪长风(刘林豆)就为大家分享了如何基于AnalyticDB构建企业实时数仓。
4790 0
|
机器学习/深度学习 测试技术 算法框架/工具
【测评】GPU训练机器学习模型哪家强?AWS、谷歌云、IBM等6大平台对比
使用官方数据和Credit,初创公司Rare Technologies最近发布了一个超大规模机器学习基准,对比了AWS、谷歌云、IBM等6家GPU硬件平台,从配置到训练时间、精度、价格等各方面。AWS和谷歌虽然整合性能好,但是性价比还是LearderGPU这样的新公司占优。
6241 0
|
物联网 PHP 区块链
区块链开发公司发展快 未来主要应用方向怎么走
  区块链应用的核心是去中央和信任,服务佳的区块链应用对凭借智能合同技术的使用,可以自动执行操作,以满足一定的条件,还可以使更多的商品“共享”,大大降低了合同建立和执行的成本。区块链应用同适用于今天蓬勃发展的共享自行车行业,它可能会给该行业带来全新的变化。
2167 0
|
关系型数据库 MySQL SQL
mysql读写分离后数据同步延迟的问题
mysql读写分离后数据同步延迟的问题 Mysql设成了Master/Slave方式,一主四从,各占一台服务器,内网方式同步数据,主只负责写,从负责同步及读。在线人数少的时候一切正常,人数增加到一定数量后,开始出现同步延迟,最高到了延迟40分钟。
4022 0
|
Web App开发 SQL 关系型数据库
mysql5.6半同步主从复制配置
mysql5.6半同步主从复制配置http://www.bieryun.com/3145.html 在谈这个特性之前,我们先来看看MySQL的复制架构衍生史。 在2000年,MySQL 3.23.15版本引入了Replication。
1647 0