# -*- coding: cp949 -*- from zipfile import ZipFile from datetime import date import os # 도쿠위키를 ZIP 파일로 압축 def backup_dokuwiki(saveas): # root directory of dokuwiki DOKUWIKI_ROOT = 'D:/Server/nginx/html/' # minimum list of backup # https://www.dokuwiki.org/faq:backup DIRS_TO_BACKUP = ('conf', 'data/pages', 'data/meta', 'data/media', 'data/attic') #backup_dokuwiki with ZipFile(saveas, 'w') as zf: oldpath = os.getcwd() os.chdir(DOKUWIKI_ROOT) for dir in DIRS_TO_BACKUP: path = DOKUWIKI_ROOT + dir for dirpath, dirnames, filenames in os.walk(path): for filename in filenames: relpath = os.path.relpath(dirpath+'/'+filename, DOKUWIKI_ROOT) print relpath zf.write(relpath) os.chdir(oldpath) # 압축된 파일을 클라우드와 동기화 def moveto_cloud(filename): CLOUD_PATH = 'C:/Users/changwoo/Dropbox/dokuwiki/' cloud_file = CLOUD_PATH+'/'+filename if os.path.exists(cloud_file): os.remove(cloud_file) os.rename(filename, cloud_file) def main(argv): today = date.today() filename = today.strftime('DokuWikiBackup%Y%m%d.zip') backup_dokuwiki(filename) moveto_cloud(filename) return 0 if __name__ == '__main__': import sys sys.exit(main(sys.argv))