用 Python 写了个自动备份脚本
服务器上的数据越来越重要,手动备份太容易忘,写了个自动化的脚本。
需求
每天凌晨 2 点,把 /data 目录打包,上传到对象存储,保留最近 30 天,成功/失败都发邮件通知。
核心代码
import tarfile, datetime, os
DATA_DIR = "/data"
BACKUP_DIR = "/backup"
def make_backup():
today = datetime.date.today().isoformat()
fname = f"{BACKUP_DIR}/backup-{{today}}.tar.gz"
with tarfile.open(fname, "w:gz") as tar:
tar.add(DATA_DIR, arcname="data")
return fname
定时任务
加到 crontab,每天凌晨执行:
0 2 * * * /usr/bin/python3 /opt/backup.py
跑了两个月了,很稳。