Python實現(xiàn)定時自動備份文件
更新時間:2024年12月31日 10:48:04 作者:hvinsion
隨著數(shù)據(jù)的不斷增長,文件備份變得越來越重要,這篇文章主要為大家詳細(xì)介紹了如何使用Python實現(xiàn)定時自動備份文件功能,需要可以了解下
簡介
通過generate.bat文件生成外置配置文本文件config.ini,python調(diào)用config.ini外置變量參數(shù),從而實現(xiàn)設(shè)置定時備份文件的任務(wù)。
1. bat腳本部分代碼
@echo off
set logname=\backup.log
echo [Config] > config.ini
echo 輸入拷貝的需備份文件夾路徑:
set /p file_folder=folderDir= >>config.ini
echo 輸入拷貝的目的文件夾路徑:
echo %file_folder% >>config.ini
set /p back_folder=folderDir_Backup= >>config.ini
echo %back_folder% >>config.ini
echo 輸入備份日志文件夾緩存路徑:
set /p log_folder=logDir= >>config.ini
echo %log_folder%%logname% >>config.ini
echo 輸入計劃啟動任務(wù)的時間:
set /p schedule_time=time= >>config.ini
echo %schedule_time% >>config.ini
rem 將路徑中'\'轉(zhuǎn)換成'//'
set strFilePath=config.ini
set strOld=\
set strNew=//
setlocal enabledelayedexpansion
for /f "tokens=*" %%i in (%strFilePath%) do (
set "var=%%i"
if not !var!.==. (
set "var=!var:%strOld%=%strNew%!"
echo !var!!>>%strFilePath%.bk
)
)
move /y %strFilePath%.bk %strFilePath% >nul
echo 正在轉(zhuǎn)換生成配置文件config.ini,請稍等...
timeout -t 3 >nul
exit
2.cmd窗口填寫需要備份的路徑以及時間參數(shù)

3.config.ini 配置文件自動生成內(nèi)容
[Config] folderDir= E://a folderDir_Backup= E://b logDir= E://backup.log time= 10:16
4.日志文件生成

5.backup.py 相關(guān)代碼
import sys
import os
import time
import datetime
from datetime import datetime,timedelta
import shutil
import configparser
#讀取config.ini文件變量
config = configparser.ConfigParser()
config.read('config.ini')
fileFolder = config.get('Config', 'folderDir')
fileNamedir = config.get('Config', 'folderDir_Backup')
filebak_log = config.get('Config', 'logDir')
#讀取時間參數(shù)
def set_schedule_time(time_str):
config.set('Config', 'time', time_str)
with open('config.ini', 'w') as configfile:
config.write(configfile)
'''
#備份
def work():
replaced_string = fileNamedir.replace('//', '\\') #替換路徑中的"http://"字符
fileName = (replaced_string) + r'\Backup_' + time.strftime('%Y%m%d%H%M')
print('----開始備份----')
shutil.make_archive(fileName, 'zip', root_dir=fileFolder)
print('----備份完成--->' + time.strftime('%Y%m%d%H%M')+'.zip')
with open(filebak_log, 'a') as filebak: #生成日志
filebak.write(time.strftime('%Y-%m-%d %H:%M',time.localtime())+':'+'Successfull backup to %s'% fileName+'.zip!\n')
#主函數(shù)
def main():
print('----工具啟動----')
while True:
while True:
# 獲取當(dāng)前時間
now = datetime.now()
current_time = f"{now.hour:02d}:{now.minute:02d}"
if current_time == config['Config']['time']:
break
work()
time.sleep(180)
if __name__ == '__main__':
main()
#print(list(os.walk(fileNamedir)))
到此這篇關(guān)于Python實現(xiàn)定時自動備份文件的文章就介紹到這了,更多相關(guān)Python自動備份文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
pymongo如何通過oplog獲取數(shù)據(jù)(mongodb)
使用MongoDB的oplog(操作日志)進(jìn)行數(shù)據(jù)同步是高級的用法,主要用于復(fù)制和故障恢復(fù),這篇文章主要介紹了pymongo通過oplog獲取數(shù)據(jù)(mongodb),需要的朋友可以參考下2023-09-09
利用python在Word文檔中創(chuàng)建和執(zhí)行條件郵件合并
郵件合并域和IF域是Word文檔中兩種非常實用的域,前者可以用來進(jìn)行郵件合并,根據(jù)數(shù)據(jù)批量創(chuàng)建定制的Word文檔,本文講介紹如何使用Python在Word文檔中創(chuàng)建條件郵件合并域以及執(zhí)行條件郵件合并,需要的朋友可以參考下2024-08-08
Python設(shè)置Socket代理及實現(xiàn)遠(yuǎn)程攝像頭控制的例子
這篇文章主要介紹了Python設(shè)置Socket代理及實現(xiàn)遠(yuǎn)程攝像頭控制的例子,皆是對socket模塊的實際運(yùn)用,需要的朋友可以參考下2015-11-11

