首页 > 数据库 > 数据库开发技术 > Python脚本实现数据库自动化备份
先放个链接,万一有人关注呢
↓ ↓ ↓ ↓ ↓
import datetimeimport osimport subprocess# 数据库备份目录BACKUP_DIR = '/path/to/backup'# 备份文件保留周期(天)RETENTION_PERIOD = 7# 备份数据库def backup_database():current_time = datetime.datetime.now()backup_file = f"backup_{current_time.strftime('%Y%m%d%H%M%S')}.sql"backup_path = os.path.join(BACKUP_DIR, backup_file)# 使用 subprocess 模块执行数据库备份命令backup_command = ['mysqldump','-u','username','-p','password','--all-databases']with open(backup_path, 'w') as backup_file:subprocess.run(backup_command, stdout=backup_file)print(f"数据库备份已完成,备份文件保存为: {backup_path}")# 清理过期备份文件def cleanup_backup():current_time = datetime.datetime.now()cutoff_time = current_time - datetime.timedelta(days=RETENTION_PERIOD)for file in os.listdir(BACKUP_DIR):file_path = os.path.join(BACKUP_DIR, file)if os.path.isfile(file_path):file_time = datetime.datetime.fromtimestamp(os.path.getmtime(file_path))if file_time < cutoff_time:os.remove(file_path)print(f"过期备份文件已删除: {file_path}")# 恢复数据库def restore_database(backup_file, restore_time):backup_path = os.path.join(BACKUP_DIR, backup_file)# 使用 subprocess 模块执行数据库恢复命令restore_command = ['mysql','-u','username','-p','password']with open(backup_path, 'r') as backup_file:subprocess.run(restore_command, stdin=backup_file)print(f"数据库已成功恢复到时间点: {restore_time}")# 主函数def main():# 执行数据库备份backup_database()# 清理过期备份文件cleanup_backup()# 恢复数据库到指定时间点restore_database('backup_20220101120000.sql', '2022-01-01 12:00:00')if __name__ == '__main__':main()
结束!如有不足之处,欢迎指正!
来不及解释了,快上车!(加我微信拉你进群):


原文作者:运维book思议;如有侵权,请联系管理员删除。