admin 管理员组文章数量: 1184232
Python 定时自动备份文件
简介:
通过generate.bat文件生成外置配置文本文件config.ini,python调用config.ini外置变量参数,从而实现设置定时备份文件的任务。
1. bat脚本部分代码
@echo off
setlogname=\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 输入计划启动任务的时间:
set /p schedule_time=time=>>config.ini
echo %schedule_time% >>config.ini
rem 将路径中'\'转换成'//'
setstrFilePath=config.ini
setstrOld=\setstrNew=//
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 正在转换生成配置文件config.ini,请稍等...
timeout -t 3>nul
exit2.cmd窗口填写需要备份的路径以及时间参数
3.config.ini 配置文件自动生成内容
[Config]folderDir= E://a
folderDir_Backup= E://b
logDir= E://backup.log
time=10:16
4.日志文件生成
5.backup.py 相关代码
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')#读取时间参数defset_schedule_time(time_str):
config.set('Config','time', time_str)withopen('config.ini','w')as configfile:
config.write(configfile)'''
#备份defwork():
replaced_string = fileNamedir.replace('//','\\')#替换路径中的"//"字符
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')withopen(filebak_log,'a')as filebak:#生成日志
filebak.write(time.strftime('%Y-%m-%d %H:%M',time.localtime())+':'+'Successfull backup to %s'% fileName+'.zip!\n')#主函数defmain():print('----工具启动----')whileTrue:whileTrue:# 获取当前时间
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)))版权声明:本文标题:Python 定时自动备份文件_python 定时备份文件 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1773965523a3567760.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论