脚本功能:
备份指定目录中的所有文件。
如果备份目录不存在,则自动创建。
可以设置定时备份(例如每天备份一次)。
代码示例:
import os
import shutil
import time
from datetime import datetime
# 配置源目录和备份目录
SOURCE_DIR = '/path/to/source' # 替换为你要备份的源目录
BACKUP_DIR = '/path/to/backup' # 替换为你想存放备份的目录
# 创建备份目录(如果不存在)
def create_backup_directory():
if not os.path.exists(BACKUP_DIR):
os.makedirs(BACKUP_DIR)
print(f"备份目录已创建: {BACKUP_DIR}")
else:
print(f"备份目录已存在: {BACKUP_DIR}")
# 备份文件
def backup_files():
timestamp = datetime.now().strftime('%Y%m%d_%H%M%S')
backup_subdir = os.path.join(BACKUP_DIR, f"backup_{timestamp}")
try:
# 创建带有时间戳的子目录
os.makedirs(backup_subdir)
print(f"正在备份文件到: {backup_subdir}")
# 遍历源目录中的所有文件并复制到备份目录
for foldername, subfolders, filenames in os.walk(SOURCE_DIR):
for filename in filenames:
src_file = os.path.join(foldername, filename)
dst_file = os.path.join(backup_subdir, os.path.relpath(src_file, SOURCE_DIR))
# 确保目标目录存在
os.makedirs(os.path.dirname(dst_file), exist_ok=True)
# 复制文件
shutil.copy2(src_file, dst_file)
print(f"已备份: {src_file} -> {dst_file}")
print("备份完成!")
except Exception as e:
print(f"备份过程中出现错误: {e}")
# 定时备份(例如每隔一天备份一次)
def schedule_backup(interval_hours=24):
while True:
create_backup_directory()
backup_files()
print(f"等待 {interval_hours} 小时后进行下一次备份...")
time.sleep(interval_hours * 3600)
if __name__ == "__main__":
# 手动执行一次备份
create_backup_directory()
backup_files()
# 如果需要定时备份,取消下面这行的注释
# schedule_backup(interval_hours=24)
使用说明:
配置路径 :将 SOURCE_DIR 和 BACKUP_DIR 替换为你实际的源目录和备份目录路径。
手动备份 :运行脚本时,它会立即执行一次备份操作。
定时备份 :如果你想让脚本每隔一段时间自动备份,可以取消 schedule_backup(interval_hours=24) 的注释,并设置你想要的备份间隔(以小时为单位)。
依赖:
该脚本不需要额外安装任何库,只需要 Python 环境即可运行。
运行方式:
将脚本保存为 backup_script.py。
在终端中运行:python backup_script.py。