一直想搞一搞Python,卻一直沒得空閑,這不,正好周六,博星也在,於是從頭開始,先是看python的手冊,一個簡明手冊看了兩個小時,然後寫了下
面的指令碼,實現了檔案的增量備份……回頭看起來,其實並不複雜,除了一個遞迴,只有語法了,而後者讓我們花費了大量的時間。python在伺服器端的一些操作還是很方便的,感覺這是一門很討人喜歡的語言,代碼如下:
#!/usr/bin/python
#-*-coding:utf-8-*-
#Filename: auto_bak.py
#Author: zz
import os
import sys
def get_dir(path):
print path, '\n'
return os.listdir(path)
def bak_file(path,path_bak):
list = os.listdir(path)
for l in list:
file_path = os.path.join(path, l)
file_path_bak = os.path.join(path_bak, l)
print file_path
#如果檔案路徑為目錄
if os.path.isdir(file_path):
#如果在備份目錄中檔案夾不存在則建立
if not os.path.isdir(file_path_bak):
create_com = '''mkdir -p '%s' ''' \
% (file_path_bak)
if os.system(create_com) == 0:
print create_com
else:
print 'create folder failure!'
os._exit(0)
bak_file(file_path, file_path_bak)
else:
#如果檔案已經存在,則比較檔案修改時間
if os.path.isfile(file_path_bak):
stat_bak = os.stat(file_path_bak)
stat_source = os.stat(file_path)
#判斷檔案修改時間
if stat_source.st_mtime <= stat_bak.st_mtime:
continue
cp_com = '''cp '%s' '%s' ''' \
% (file_path, file_path_bak)
if os.system(cp_com) == 0:
print cp_com
else:
print 'create folder failure!'
os._exit(0)
#要備份的檔案目錄
path = '/home/zyf/appspot/auto_bak/a'
#備份檔案目錄
path_bak = '/home/zyf/appspot/auto_bak/bak'
#開始備份
bak_file(path, path_bak)