Lo All, 首先,大多数人可能会认为这是一个重复的帖子,但它有一个独特的元素:tar ... 我现在已经发布了几次这个代码,很多都有帮助。但是,我修改了代码以将日期添加到文件名。不幸的是,输出只是没有改变......代码是:
import time
import datetime
import os
import json
import tarfile
source_config='/myapp/brendan.json'
backup_dir = '/myapp/target/'
DATE_FORMAT = '%Y%m%d'
now = time.strftime(DATE_FORMAT)
timestr_now = time.strftime('%Y%m%d')
def main():
print timestr_now
with open(source_config) as f:
data = json.load(f)
for entry in data["source_include"]:
base_filename = os.path.basename(entry)
#source_dirs = [ name for name in os.listdir(entry) if os.path.isdir(os.path.join(entry, name)) ]
full_dir = os.path.join(entry)
testname = (timestr_now, backup_dir, base_filename)
date_name = str(timestr_now + "_" + base_filename)
tar = tarfile.open(os.path.join(backup_dir, date_name + '.tar.gzip'), 'w:gz')
tar.add(full_dir)
tar.close()
和JSON:
{
"source_type": "folder",
"tar_type": "gzip",
"tar_max_age": "10",
"source_include": ["/myapp/conf/",
"/myapp/db/",
"/myapp/randomdata/"],
"target_path": "/myapp/target/",
"del_age": "10"
}
请注意,JSON中的其他选项将在以后使用。
因此,当我运行此代码时,它返回日期:20131206(在控制台中),这是打印时间线的结果。然而,产生的焦油被命名为conf.tar.gzip和db.tar.gzip ......而不是预期的20131206conf.tar.gzip ......不知道我到底做错了什么?