1. 建立一个空的git仓
2. 备份数据到git
# 安装git
yum -y install git
# 配置git
git config --global user.name "于飞"
git config --global user.email "yufei_email@163.com"
# 记住密码,这样只要输入一次账号密码
git config --global credential.helper store
# 初始化/root/docker目录为git仓
cd /root/docker
git init
git remote add origin https://gitee.com/ferrisyu/wordpress_back.git
# 添加.gitignore
# db目录不用备份,使用mysqldump导出sql再备份
cat <<EOF >/root/docker/.gitignore
/db
/nginx/log
/wordpress/wp-content/cache
EOF
# 提交文件
git add --all .
git commit -m "初始工程"
git push --set-upstream origin master
3. 设置定时备份任务
# 准备脚本
cat <<EOF >/root/docker/backup.sh
date "+%Y-%m-%d %H:%M:%S"
docker exec -i mysql mysqldump codingxx -u root -pKdif@9854jef > /root/docker/backup.sql
cd /root/docker
git add --all .
git commit -m "auto backup"
git push origin master
echo ""
EOF
chmod u+x backup.sh
# 配置定时任务
# 这里待优化,log文件使用的追加方式,没有定期清理。影响不大,每天备份1次基本不会出现很大的日志文件
echo '0 3 * * * root /root/docker/backup.sh >> /root/backup.log 2>&1' >> /etc/crontab
systemctl restart crond
4. 从备份恢复网站
cd /root/docker
# 关闭网站
docker-compose down
# 根据git提交记录,将代码恢复到某天备份的commitid
git checkout 5e97592f4992a48e5f63aae30d3851f3f8ef863d
# 删除数据库文件
rm /root/docker/db -rf
# 启动网站
docker-compose up -d
# 恢复数据库
docker exec -i mysql mysql -uroot -pKdif@9854jef codingxx < /root/docker/backup.sql
# 重启网站
docker-compose restart
编程之海 版权所有丨如未注明,均为原创丨转载请注明转自:https://codingsea.com/wordpress-backup-restore/