python脚本备份linux,用Python写的rsync备份脚本V2.0 - Python/Ruby/Perl/PHP - LinuxTone | 运维专家网论坛 - 最棒的Linux运维与开源...

本帖最后由 ning_lianjie 于 2010-10-25 11:04 编辑

经过几天的测试,发现一些问题,做了些修改,现在贴出来,希望大家能够给些建议

1·为了让打印出来的日志,直接excel读取,改成csv格式,并且用“,”逗号分隔。

2·上一个脚本用字符串定位,比较笨拙,而且命令执行的结果,不一定是规则的模式,就会造成取到错误的值。

3·取值方式改成“正则表达式”,finditer函数。

#!/usr/bin/python

'''Synchronous script

About rsync-server'''

import os

import sys

import time

import re

now=time.strftime('%Y%m%d')

pwd='/tmp/.passwd'

log22='/tmp/stats_%s.csv' % (now)

dict_mon={

'mytest3':('ning@127.0.0.1::','/tmp/test2010'),

'mytest1':('ning@127.0.0.1::','/tmp/test2010'),

'mytest4':('ning@127.0.0.1::','/tmp/test2010'),

'mytest2':('ning@127.0.0.1::','/tmp/test2010')

}

def write_title(log_stat):

file_log=open(log_stat,'a')

file_log.write('time,module,Number of files,Number of files transferred,Total file size(bytes),Total transferred file size(bytes)\n')

file_log.close()

def write_notes(d_ary,log_stat,port=873):

for i in d_ary:

line_mon=d_arycmd='rsync -tzrp --stats --port=%s --password-file=%s %s%s %s' % (port,pwd,line_mon[0],i,line_mon[1])

fle=open(log_stat,'a')

now=time.strftime('%H:%M:%S')

try:

cmd_put=os.popen(cmd)

list_tmp=[]

re_p=re.compile('(Number of files:|Number of files transferred:|Total file size:|Total transferred file size:) (.)')

for each_line1 in cmd_put:

for each_line2 in re_p.finditer(each_line1):

#                    print each_line2.group()

if each_line2 is not None:

list_tmp.append(each_line2.group(2))

else:

pass

cmd_stat='%s,%s,%s,%s,%s,%s,%s' % (now,i,list_tmp[0],list_tmp[1],list_tmp[2],list_tmp[3],os.linesep)

cmd_put.close()

fle.write(cmd_stat)

except:

cmd_stat='%s,%s,%s,%s,%s,%s' % (now,i,'error','error','error','error'+os.linesep)

fle.write(cmd_stat)

fle.close()

if __name__ == '__main__':

write_title(log22)

write_notes(dict_mon,log22)

#    write_notes(dict_mon,log22,8000)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值