# Python 运维开发示例代码:自动化备份 MySQL 数据库
import os
import datetime
import subprocess
# 配置信息
DB_HOST = 'localhost'
DB_USER = 'root'
DB_USER_PASSWORD = 'your_password'
BACKUP_DIR = '/path/to/backup/dir'
# 获取当前日期时间,用于命名备份文件
now = datetime.datetime.now()
date_str = now.strftime("%Y%m%d_%H%M%S")
# 构建备份命令
backup_file = f"{BACKUP_DIR}/mysql_backup_{date_str}.sql"
backup_cmd = f"mysqldump -h {DB_HOST} -u {DB_USER} -p{DB_USER_PASSWORD} --all-databases > {backup_file}"
# 执行备份命令
try:
subprocess.run(backup_cmd, shell=True, check=True)
print(f"Backup successful: {backup_file}")
except subprocess.CalledProcessError as e:
print(f"Backup failed: {e}")
# 清理旧的备份文件(可选)
# 可以根据需要设置保留天数
retention_days = 7
old_files = [f for f in os.listdir(BACKUP_DIR) if os.path.isfile(os.path.join(BACKUP_DIR, f))]
for file in old_files:
file_path = os.path.join(BACKUP_DIR, file)
if os.stat(file_path).st_mtime < (now - datetime.timedelta(days=retention_days)).timestamp():
os.remove(file_path)
print(f"Removed old backup: {file_path}")
datetime 模块生成当前日期时间字符串,用于命名备份文件。mysqldump 命令备份所有数据库,并将输出重定向到指定的备份文件。subprocess.run 执行备份命令,并捕获可能的错误。这个脚本可以作为定时任务(例如通过 cron)定期运行,以确保数据库的自动备份。
上一篇:end在python中的用法
下一篇:python 10进制转2进制
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站