自动定时备份目录的Python脚本

下面是一个可以实现自动定时备份指定目录的Python脚本。它会将源目录复制到目标目录,并在备份文件夹名称中添加时间戳以便区分不同备份。

#backup_script.py Apply
import shutil
import os
import time
from datetime import datetime

def backup_directory(source, destination):
# 创建带时间戳的备份目录名
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
backup_dir = os.path.join(destination, f"wordpress_backup_{timestamp}")

try:
# 复制整个目录树
shutil.copytree(source, backup_dir)
print(f"备份成功!备份目录: {backup_dir}")
return True
except Exception as e:
print(f"备份失败: {e}")
return False

def scheduled_backup(source, destination, interval_seconds):
print(f"开始定时备份,源目录: {source}, 目标目录: {destination}, 备份间隔: {interval_seconds}秒")

while True:
backup_directory(source, destination)
# 等待指定的时间间隔
time.sleep(interval_seconds)

if __name__ == "__main__":
# 定义源目录和目标目录
source_dir = r"C:\www\WWW\wordpress"
dest_dir = r"D:\phpstudy_pro\WWW"

# 设置备份间隔(这里设置为24小时,即86400秒)
backup_interval = 86400 # 24小时

# 开始定时备份
scheduled_backup(source_dir, dest_dir, backup_interval)

使用说明

  1. 将上述代码保存为 backup_script.py
  2. 运行脚本:python backup_script.py
  3. 脚本会每24小时(86400秒)执行一次备份
  4. 备份文件会保存在目标目录下,名称格式为 wordpress_backup_YYYYMMDD_HHMMSS

如果需要修改备份频率,可以调整 backup_interval 的值,单位为秒。例如:

  • 3600秒 = 1小时
  • 43200秒 = 12小时
  • 86400秒 = 24小时(默认值)

注意:运行此脚本需要有足够的权限访问源目录和写入目标目录。建议以管理员身份运行命令提示符或终端。