首页 > 代码库 > python 使用tar备份文件,目录,排除文件

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

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