MENU

Typecho网站备份

November 30, 2025 • 建站

介于已经出现好几次网站服务器故障导致网站丢失的情况,所以决定还是实施下网站的自动备份。

整体方案比较简单,服务器定时运行备份脚本,然后将网站的关键文件(对于typecho来说,应该就是usr目录、数据库,当然还是nginx的一些配置)上传至Github上。

记得将Git仓库设置为私有。

1. 备份脚本

#!/bin/bash

web_root="/var/www/html/"
blog_dir="${web_root}/usr/"
nginx_dir="/etc/nginx/sites-available/"

git_dir="/root/IoTShareBlog/"
blog_bak_dir="${git_dir}/blog"
nginx_bak_dir="${git_dir}/nginx"

# 1. copy files to git dir
mkdir -p ${blog_bak_dir}
mkdir -p ${nginx_bak_dir}

cp -ard ${blog_dir} ${blog_bak_dir}
cp -ard ${nginx_dir} ${nginx_bak_dir}

# 2. git commit & push
cd ${git_dir}
git add -A
git commit -m "feat: backup web server files"
git push -f
cd -

2. 定时备份

考虑定时将网站数据备份到Github,这里使用Linux Crontab,详细说明参见Crontab说明
这里选择每天晚上10点尝试备份一次,当然是否备份取决于是否发生了数据变更。

# m h  dom mon dow   command

00 22 * * * sh /usr/local/bin/backup_iotshare.sh > /var/log/iotshare_bak.log