#!/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