사이트 도구


메인

문서의 이전 판입니다!


기상청 wiki

BackupDokuWiki.py
# -*- 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))