root@kali:~/python/log# ls
account.log backup.log ext.txt logback.py logger.py logger.pyc
root@kali:~/python/log# cat ext.txt
/root/python/atmnew/account.pkl
/root/python/atmnew/logger.pyc
/root/python/atmnew/logger.py
root@kali:~/python/log# cat logback.py
#!/usr/bin/python
# --*-- coding:utf-8 --*--
import sys,os,time,logger
source_file = sys.argv[1]
formated_source_file = source_file.split('/')[-1]
backup_dir = '/root/python/atmnew'
backup_to_file = '''%s%s_%s.tgz''' % (backup_dir,formated_source_file,time.strftime("%Y-%m-%d_%H%M%S",time.localtime()))
def run_backup(runtime="now",exclude_file_name = 'None'):
if len(sys.argv) == 4:
print '-------exclude file mode-------------'
if sys.argv[2] == '-X':
exclude_file_name = sys.argv[3]
backup_cmd = 'tar cvzfX %s %s %s ' %(backup_to_file,exclude_file_name,source_file)
else:
print '------------Normal mode----------------'
#backup_cmd = 'tar cvzf %s %s | wc -l' %(backup_to_file,source_file)
backup_cmd = 'tar cvzf %s %s' %(backup_to_file,source_file)
run_command = os.system(backup_cmd)
if run_command == 0:
logger.record_log('Full Backup','Success','N/A','test')
else:
logger.record_log('Full Backup','Failure','N/A','test')
run_backup()
root@kali:~/python/log# cat logger.py
#!/usr/bin/python
# --*-- coding:utf-8 --*--
import time#导入时间模块
logfile = 'backup.log'#定义要使用的日志文件account.log
#定义函数包括参数账户、花费、描述信息、利息(默认为0、取款、转账有手续费必须带参数值)
def record_log(Backup_type,Status,files,description = 'NULL'):
date = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime())#取出当前时间
record_line = "%s %s '%s' %s %s\n" %(date,Backup_type,Status,files,description)#记录当前消费时调用函数各个参数时间行为
f = open(logfile,'a')#追加写入方式打开日志account.log
f.write(record_line)#写入每行函数产生日志信息
f.flush()#实时写入
f.close()#关闭文件
root@kali:~/python/log# cat backup.log
2017-06-13 23:46:45 Full Backup 'Success' N/A test
2017-06-13 23:59:34 Full Backup 'Success' N/A test
root@kali:~/python/log#
运行:
root@kali:~/python/log# cat backup.log
2017-06-13 23:46:45 Full Backup 'Success' N/A test
root@kali:~/python/log# vi ext.txt
root@kali:~/python/log# vi logback.py
root@kali:~/python/log# python logback.py /root/python/atmnew -X ext.txt
-------exclude file mode-------------
tar: 从成员名中删除开头的“/”
/root/python/atmnew/
/root/python/atmnew/account.py
/root/python/atmnew/record_account.py
/root/python/atmnew/account.log
/root/python/atmnew/pickle_test.py
/root/python/atmnew/::wq
root@kali:~/python/log# cat ext.txt
/root/python/atmnew/account.pkl
/root/python/atmnew/logger.pyc
/root/python/atmnew/logger.py
root@kali:~/python/log#
root@kali:~/python# ls atmnew
account.log account.pkl account.py logger.py logger.pyc pickle_test.py record_account.py ::wq
root@kali:~/python# ls
atmnewaccount.py_2017-06-13_234645.tgz
atmnewatmnew_2017-06-13_235934.tgz
root@kali:~/python#