备份cvs服务器的python脚步!

公司的所有后台代码都保存在cvs服务器上,以前备份都是手工在做,不能做到及时备份.

最近天气冷了,空调等用电大户开始启动,办公室已经跳闸好几次了.一台VSS服务器的cpu就光荣牺牲了.

幸亏不是烧的硬盘,万幸之余又些后怕.要是cvs服务器坏了,那就不得了.赶快写个自动备份的脚步.

本来是准备用cvsup做的,安装配置还比较麻烦,干脆就用最简单的方式了.先压缩,后ftp进行备份.

 脚步如下:

[code]

#!/bin/env Python
import os,time,ftplib,string
import glob,sys
import os.path

home='/root/backcvs'                    #本地保存文件目录
ftphost='192.168.0.99'                  #ftp备份服务器
ftpuser='cvsroot'   #ftp登陆用户名
ftppass='xxxxxxx'   #ftp登陆密码
ftppassmode=1    #ftp模式 port 0 passive 1
ftpdir='backcvs'   #ftp上存放备份的目录

cvsdir='/home/cvsroot'   #cvs代码存放目录
data=time.strftime('%y-%m-%d')
cvstarfile="cvsroot"+data+".tgz"
global fd

if not os.path.isdir(home):
    os.mkdir(home)
os.chdir(home)
lastfilelen = os.path.getsize(glob.glob("*.tgz")[-1])
cmd = "tar zcvf "+cvstarfile+" "+cvsdir
if (os.system(cmd))!=0:
    print "tar file faild! cmd:[%s]"%(cmd)
    sys.exit(1)

newfilelen = os.path.getsize(cvstarfile)
print "new:%d,old:%d"%(newfilelen,lastfilelen)
if (newfilelen == lastfilelen):
    print "file size not change! exit!"
    sys.exit(0)

print "while upload file:%s,size:%d"%(cvstarfile,newfilelen)
if os.getcwd()==home:
    ftp=ftplib.FTP(ftphost,ftpuser,ftppass)
    ftp.set_pasv(ftppassmode)
    ftp.cwd(ftpdir)
    paths=ftp.nlst('cvsroot*')
    print paths
    if len(paths) > 5:
        ftp.delete(paths[0])
        os.remove(paths[0])
    fd = open(cvstarfile, 'rb')
    ftp.storbinary('STOR %s' % os.path.basename(cvstarfile), fd)
    fd.close()
    ftp.quit()

[/code]

然后在crontab里面加一行就每天定时启动的命令就可以了!

0 1 * * * Python /root/backcvs/backcvs.py

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值