步驟邏輯
要備份的文件夾:source = ["/opt/containerd"]
保存備份信息的文件夾 targz_dir = "/home/backup"
文件夾名(以當天日期為) day_dir = targz_dir +time.strftime('%Y%m%d')
文件名(當時時間為) filename = time.strftime('%H%M%S')
檢查文件夾是否存在 os.path.exist(day_dir)
文件夾路徑 需要壓縮 zip_dir = day_dir + os.sep +filename +'.zip' # os.sep 兼容Windows平台斜杠 os.sep = '\\'
文件壓縮命令 command_shell = "zip -qr" +"zip_dir" + ' '.jion(source)
代碼實現
source = ["/home/yjc/linux"] targz_dir = "hoem/backup" day_dir = targz_dir +time.strftime('%Y%m%d') filename = time.strftime('%H%M%S') zip_dir = day_dir +os.sep + filename +'.zip' command_shell= "zip -qr" + zip_dir + ''+' '.join(source) if not os.path.exists(day_dir): # 判斷備份目錄是否存在,如果不存在則創建 os.mkdir(day_dir) if os.system(command_shell) == 0: print("備份成功") else: print("備份失敗")
簡易圖形界面
def bakcup(): global entry_source global entry_tagz_dir source= entry_source.get() targz_dir=entry_tagz_dir.get() day_dir = targz_dir +time.strftime('%Y%m%d') filename = time.strftime('%H%M%S') zip_dir = day_dir +os.sep + filename +'.zip' command_shell= "zip -qr" + zip_dir + ''+' '.join(source) if not os.path.exists(day_dir): # 判斷備份目錄是否存在,如果不存在則創建 os.mkdir(day_dir) if os.system(command_shell) == 0: print("備份成功") else: print("備份失敗") #編寫界面布局 root = tkinter.Tk() root.title('Backup') root.geometry("2000x2000") #第一行的兩個控件 dir_source = tkinter.Label(root,text='Source') dir_source.grid(row=0,column=0) entry_source = tkinter.Entry(root) entry_source.grid(row=0,column=1) # 第二行控件 target_dir = tkinter.Label(root,text='Target') target_dir.grid(row=1,column=0) entry_tagz_dir=tkinter.Entry(root) entry_tagz_dir.grid(row=1,column=1) #第三行控件 bak=tkinter.Button(root,text='Backup') bak.grid(row=3,column=0) bak["command"] = bakcup #界面開始 root.mainloop()