PyBackup:自动备份本地站点及数据库(mysql,mssql),支持Ftp,阿里云Oss,腾讯云Cos,OneDrive,Email等
一、PyBackup介绍:
可以备份本地站点及数据库(mysql,mssql),和远程FTP站点及远程数据库(mysql,mssql),
同步备份文件到Ftp,阿里云Oss,腾讯云Cos,OneDrive,Email,还有本地,并删除指定天数的旧备份文件
二、PyBackup安装
1、Linux一键配置环境
wget --no-check-certificate https://raw.githubusercontent.com/LoneKingCode/PyBackup/master/PyBackup/backup/plugin/init.sh -O pybackup.sh && bash pybackup.sh
执行完本程序存放在脚本同目录
安装完输入python3 -h 和pip3 -h 还有7za 查看结果 判断是否安装成功
然后自行设置计划任务 使用crontab或者面板内自带计划
本程序目录/plugin/cron.sh为使用crontab设置计划任务 自行修改里面路径后执行sh cron.sh 即可
backup.py为主程序 设置的命令为 python3 yourPath/backup.py
2、Windows下的安装
首先下载安装python3.6.3 https://www.python.org/ftp/python/3.6.3/python-3.6.3.exe 安装完命令提示符中输入python3 -h 和pip3 -h 命令看结果 判断是否安装成功 然后下载本程序并解压 https://github.com/LoneKingCode/PyBackup/releases 然后修改本程序目录中/backup/plugin/init.bat 批处理文件中这一行命令 schtasks /create /tn "backup_web_db" /ru system /tr "python3 /yourPath/backup.py" /sc DAILY /st 01:00 修改backup_web_db为计划任务名称,修改yourPath为文件实际位置,DATLY为每日,01:00 凌晨一点执行 想计划为其他周期自行百度schtasks或者windows添加计划任务 修改完成保存后 双击 init.bat运行即可 init.bat作用是安装python3依赖库及设置计划任务
三、使用方法
提前说下:
配置文件中[]为数组,内部元素用,来隔开
{'key':'value','key':'value'}为字典
所有[{}] 这种结构的都可以设置为[{},{},{},]多个配置
修改config.py中配置
#备份的站点目录
#type: local,ftp local(本地),ftp(远程站点备份)
#path: 要备份的目录 windows下记得是双斜杠\\ linux下用/就行 比如/home/wwwroot/myweb
#archive_type: 7z,zip,tar(7zip支持的类型)
#archive_password: 压缩包密码
#type为ftp时需要额外配置: host:FTP服务器地址 port:端口 username:用户名 password:密码
SITES = [{ 'type':'local','path':'D:\\wwwroot\\www.aa.com',
'archive_type':'zip','archive_password':'123' },
{ 'type':'ftp', 'path':'/WEB', 'archive_type':'zip','archive_password':'123',
'host':'yourFtpUrl','port':21,'username':'yourFtpUsername','password':'yourFtpPwd'}]
#备份的数据库
#type: 数据库类型 mssql,mysql
#database_name: 数据库名称
#username: 数据库用户名
#password: 数据库密码
#host: 数据库服务器地址 为空代表本地
#archive_type: 7z,zip,tar(7zip支持的类型)
#archive_password: 压缩包密码
#sqlcmd_path 或 mysqldump_path : mssql和mysql命令行工具路径 windows下无需修改 linux请设置为''
#***注意***
#设置备份远程数据库时 请在数据库中设置为备份机IP可连接或任意IP可连接(mysql添加用户且设置Host为%或指定IP)
#mysql
#linux如果mysqldump命令可以直接执行的话mysqldump_path设置为'',否则设置为实际路径,windows下设置mysqldump.exe位置,本程序plugin目录自带有(MYSQL5.7)
#mssql(Sql Server)
#linux如果SQLCMD命令可以直接执行的话sqlcmd_path设置为'',windows下设置SQLCMD.exe位置,本程序plugin目录自带有(SQLSERVER2014)
#命令行工具有需要可在plugin目录替换为你需要的版本
DATABASES = [{'type':'mssql','database_name':'yourDatabaseName','username':'sa','password':'123','host':'123.123.123.123',
'archive_type':'zip','archive_password':'123','sqlcmd_path':os.path.join(str(ROOT_DIR),'plugin') + '\\SQLCMD.exe'},
{'type':'mysql','database_name':'yourDatabaseName','username':'test','password':'asd','host':'aa.aa.com',
'archive_type':'zip','archive_password':'123','mysqldump_path': os.path.join(str(ROOT_DIR),'plugin') + '\\mysqldump.exe'}]
#保留几天内的文件
KEEP_DAYS = 7
#本地备份文件保存位置
LOCAL_SAVE_PATH = {'sites':'D:\\Save\\backup\\sites','databases':'D:\\Save\\backup\\databases'}
#备份文件临时保存位置
TEMP_SAVE_PATH = 'D:\\Save\\backuptemp'
#远程备份类型 为空则只保存到本地
#可选 ftp,email,oss,cos,onedrive
#***注意***
#email的话注意附件大小 有的限制是25MB 有的是50MB
REMOTE_SAVE_TYPE = ['oss','cos','ftp','onedrive']
#FTP备份配置
#host: FTP服务器地址
#port: FTP端口
#username: FTP用户名
#password: FTP密码
#site_save_path: 站点备份文件保存的路径 确保路径已经存在
#db_save_path: 数据库备份文件保存的路径 确保路径已经存在
FTP_OPTIONS = [{'host':'yourFtpUrl','port':21,'username':'yourFtpUsername','password':'yourPwd',
'site_save_path':'/backup/sites','db_save_path':'/backup/databases'},]
#阿里云OSS配置
#sitedir: 站点备份文件保存目录
#databasedir: 数据库文件保存目录
#url:你oss地址
#bucket: 存储桶名称
#accesskeyid: AccessKeyId
#accesskeysecret : AccessKeySecret
OSS_OPTIONS = [{'sitedir':'sites','databasedir':'databases','url':'oss-xx-xxxx.aliyuncs.com','bucket':'bucketName',
'accesskeyid':'ASDI123ISDD12','accesskeysecret':'SAD123ASD123ASD213ASD'},]
#腾讯云COS配置
#sitedir: 站点备份文件保存目录
#databasedir: 数据库文件保存目录
#region:区域
#bucket: 存储桶名称
#accesskeyid: AccessKeyId
#accesskeysecret : AccessKeySecret
COS_OPTIONS = [{'sitedir':'sites','databasedir':'databases','region':'ap-hongkong','bucket':'bucketName',
'accesskeyid':'ASD123ASDASD123','accesskeysecret':'ASD123ASDASD123ASD'},]
#OneDrive配置
#name: 名称
#用于区别配置文件中配置,可以设置为多个{'name':'backup1' .....},{'name':'backup2' .....},这样的话需要你认证多次不同账户
#sitedir: 站点备份文件保存目录
#databasedir: 数据库文件保存目录
ONE_DRIVE_OPTION = [{'name':'backup1','sitedir':'sites','databasedir':'databases',}]
#默认无需修改 用于申请API访问 此处采用萌咖(MoeClub)提供的
ONE_DRIVE_CLIENT = {'client_id':'ea2b36f6-b8ad-40be-bc0f-e5e4a4a7d4fa','client_secret':'h27zG8pr8BNsLU0JbBh5AOznNS5Of5Y540l/koc7048='}
#Email备份配置
#发送配置
#host: 邮箱smtp服务器地址
#username: 用户名 password:密码 port:端口 is_ssl:是否ssl加密连接 True或者False
EMAIL_OPTIONS_SENDERS = [{'host':'smtp.AA.com','username':'AA@AA.com','password':'123446','port':465,'is_ssl':True},]
#接收邮箱
EMAIL_OPTIONS_RECEIVERS = ['receivebackup@foxmail.com',]
#7z.exe位置 利用7zip来压缩
#只有windows需要(在程序plugin目录中已经附带有了
#linux安装过"p7zip"就行
WINDOWS_7ZIP_PATH = os.path.join(str(ROOT_DIR),'plugin') + '\\7z.exe'
项目地址:https://github.com/LoneKingCode/PyBackup
本地下载:PyBackup-201902