首页 > 代码库 > 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备份文件,目录,排除文件