美文网首页
定期备份我的博客

定期备份我的博客

作者: 清净一心 | 来源:发表于2021-09-21 14:51 被阅读0次

为了避免数据丢失,决定使用Python脚本来实现定期备份博客的内容。

以下是需要实现的具体内容:

  • 每周日晚上11点30开始自动备份
  • 将Blog目录下面的所有文件打包压缩后,复制到指定的备份目录下方
  • 备份的文件名格式为: backup-timestamps.tar.gz,例如:backup-2021-09-21_132517.tar.gz

以下是具体的代码:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import tarfile
import os
from datetime import datetime
from shutil import copy, rmtree

# 指定源文件夹路径,例如:/var/log
src_folder = '/home/pi/blog'

# 指定目标文件夹路径, 例如:/home/backup
dst_folder = '/media/pi/D1T/backup/blog'

# 备份开始的时间戳
timestamp = datetime.now().strftime('%Y-%m-%d_%H%M%S')

# 指定备份的文件名

filename = 'backup'

full_filename = '%s/%s-%s.tar.gz' % (src_folder, filename, timestamp)

tar = tarfile.open(full_filename, "w:gz")
os.chdir(src_folder)

for name in os.listdir("."):
        tar.add(name)
tar.close()

copy(full_filename, dst_folder)

为了能实现定期的自动备份,需要使用Linux系统的计划任务工具Crond。

以下是配置计划任务的格式,从左往右的顺序为:分钟、小时、日、月、周。

# * * * * *  command to execute
# ┬ ┬ ┬ ┬ ┬
# │ │ │ │ │
# │ │ │ │ │
# │ │ │ │ └───── day of week (0 - 7) (0 to 6 are Sunday to Saturday, or use names; 7 is Sunday, the same as 0)
# │ │ │ └────────── month (1 - 12)
# │ │ └─────────────── day of month (1 - 31)
# │ └──────────────────── hour (0 - 23)
# └───────────────────────── min (0 - 59)

为了能实现每周日晚上11点30开始自动备份,需要执行命令crontab -e,然后配置以下内容:

30 23 * * 7 /usr/bin/python3 /home/pi/python/backup_blog.py

相关文章

网友评论

      本文标题:定期备份我的博客

      本文链接:https://www.haomeiwen.com/subject/brnbgltx.html