python 使用tar备份文件,目录,排除文件


#!/usr/bin/python

# -*- coding: utf-8 -*-

import time,os,sys

#获取输出需要备份的文件或者目录

source_file = sys.argv[1]

#通过os.path.isfile(source_file)函数来判断需要备份的是文件或目录

state=os.path.isfile(source_file)

print state

#如果是文件则执行以下代码

if state == True:

#获取备份文件

    back_file = source_file.split(‘/‘)[-1]

#定义备份目录

    back_dir=‘/root/backup/back_dir/‘

#定义压缩后备份文件名

    file_name="%s.tar.gz" %(back_file)

#定义备份后的文件名存放的路径以及压缩后的文件名,方便在tar引用变量

    back_to_file="%s%s"%(back_dir,file_name)

#将上面定义的备份路径后的文件名做引用tar zxvf /root/backup/back_dir/file.tar.gz 需要备份的文件

    cmd = "tar zcvf %s %s"%(back_to_file,back_file)

#通过os.system()这个函数去调用shell命令

    os.system(cmd)

#通过判断位置参数1是否为--exclude,tar zcf /root/backup/back_dir/file.tar.gz --exclude 文件 目录

if source_file == "--exclude":

#获取需要备份的目录名

    source_file = sys.argv[3]

#获取需要排除的文件名

    exclude_file = sys.argv[2]

#这里使用split(‘/‘)以/分隔符对目录路径进行分割,取1获得需要备份的目录名

    back_file = source_file.split(‘/‘)[1]

    file_name="%s.tar.gz" %(back_file)

    back_dir=‘/root/backup/back_dir/‘

    back_to_file="%s%s"%(back_dir,file_name)

    back_to_file="%s%s"%(back_dir,file_name)

    cmd = "tar zcvf %s --exclude %s %s"%(back_to_file,exclude_file,source_file)

    os.system(cmd)

    print cmd

#否则执行以下代码块,备份目录的方法

else:

    back_file = source_file.split(‘/‘)[1]

    file_name="%s.tar.gz" %(back_file)

    back_dir=‘/root/backup/back_dir/‘

    back_to_file="%s%s"%(back_dir,file_name)

    cmd = "tar zcvf %s %s"%(back_to_file,source_file)

    os.system(cmd)

    print source_file

    print cmd


本文出自 “服务器” 博客,请务必保留此出处http://zhangfang2012.blog.51cto.com/6380212/1577417

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。