群晖搭建网站很方便,但是为了防止数据丢失,定时备份还是需要的。什么宝塔面板类一键备份很容易,但是Docker下的教程比较少。今天杨公子收集整理了如何备份Docker容器下的网站数据库。
备份网站脚本
比如Docker容器的网站文件都在web_packages文件夹中,现在要备份到群晖根目录下面的/file/Backup文件中
# 进入到备份文件夹
cd /volume1
#压缩网站数据
tar zcvf web_$(date +"%Y%m%d").tar.gz web_packages
mv web_$(date +"%Y%m%d").tar.gz /volume1/file/Backup
# 删除3天前备份文件
rm /volume1/file/Backup/web_$(date -d -3day +"%Y%m%d").tar.gz
备份docker mysql数据脚本
将docker容器中mysql的数据库备份到群晖根目录/volume1/file/BackUp文件夹下面
#当前日期
BACKUP_PATH=/volume1/file/BackUp
DATE=$(date +%Y%m%d)
MYSQL_PWD=数据库密码
#查询所有数据库
DATABASES=$(docker exec -i mysql容器id mysql -uroot -p$MYSQL_PWD -e "show databases" | grep -Ev "Database|sys|information_schema|performance_schema|mysql")
#循环数据库进行备份
for db in $DATABASES
do
echo
if [[ "${db}" =~ "+" ]] || [[ "${db}" =~ "|" ]];then
echo "jump over ${db}"
else
echo ----------$BACKUP_PATH/${db}_$DATE.sql.gz BEGIN----------
docker exec -i 926fe034bb2920ae330275f1656ce2303125c3a65bfe7be42891f530bbcc61da mysqldump -uroot -p$MYSQL_PWD --default-character-set=utf8 -q --lock-all-tables --flush-logs -E -R --triggers -B ${db} | gzip > /var/tmp/${db}_$DATE.sql.gz
mv /var/tmp/*.sql.gz $BACKUP_PATH
echo ${db}
echo ----------$BACKUP_PATH/${db}_$DATE.sql.gz COMPLETE----------
echo
fi
done
echo "done"
原文链接:https://zhuanlan.zhihu.com/p/571807068
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END