现在的 www.yaohonglou.de 是放在德国netcup公司的vps上面的,但其图床尚未转移仍然放在阿里云oss使用阿里云cdn输出,之所以没有转移主要还是因为自己太懒了一直拖着。最近又开始不时收到阿里云的短信警告,于是这个周末我将图床进行了转移,顺道完善了一下数据备份的相关规则。

首先是在netcup增加了一个网站,绑定 img.yaohonglou.de 域名,然后将oss的文件转移到网站根目录下面,然后使用腾讯云国际站的edgeone作为cdn,不但提高了稳定性、还解决了定期更新ssl的烦恼(EO提供免费的ssl证书并且到期之前自动更新)
图床弄好了后再mysql替换相关数据:
UPDATE wp_posts SET post_content = REPLACE(post_content, 'img.yaohonglou.com', 'img.yaohonglou.de');
UPDATE wp_posts SET guid = REPLACE(guid, 'img.yaohonglou.com', 'img.yaohonglou.de');
UPDATE wp_comments SET comment_content = REPLACE(comment_content, 'img.yaohonglou.com', 'img.yaohonglou.de');
UPDATE wp_comments SET comment_author_url = REPLACE(comment_author_url, 'img.yaohonglou.com', 'img.yaohonglou.de');然后就是备份问题,我使用的amh面板,相关备份插件不太好用,于是直接进ssh手动安装reclone
sudo -v
curl https://rclone.org/install.sh | sudo bash
rclone version出现版本信息就表示安装成功了,然后添加云存储(需提前在阿里云创建好Bucket、并申请好AccessKeyID切只给其oss相关权限)
rclone config
s/q> n → 新建远程
name> oss → 自定义名称
Storage> 4 → 存储类型选s3(不同版本的次序可能不一样)
provider> 2 → 服务商选alibaba(不同版本的次序可能不一样)
env_auth> 1 → false 不使用环境变量认证
access_key_id> → 阿里云的AccessKeyID
secret_access_key> → 阿里云的AccessKeySecret
endpoint> → oss存储捅所在的区域
acl> default → 文件权限默认即可
storage_class>Standard → 标准存储
advanced> → n 不需要
y/e/d> → y 保存
e/n/d/r/c/s/q> → q 退出配置好之后使用 rclone lsd oss: 查看存储桶,如果能显示存储条列表就说明配置好了,然后就是考虑备份逻辑,
我是使用amh每6小时执行一次数据库备份,然后使 sudo crontab -e 添加了两条规则分别是网站跟数据库的。
# 下行表示每个整点的第10分钟将本地的 /home/backup/ 同步到oss的 /vps/sql/ 检查并发数4、传输并发数3,任务优先级15(低于系统普通任务)
10 * * * * nice -n 15 rclone sync /home/backup/ oss:/vps/sql/ --checkers 4 --transfers 3 >> /var/log/rclone_sync_sql.log 2>&1
30 * * * * nice -n 15 rclone sync /home/wwwroot/lnmp01/domain/ oss:/vps/wwwroot/ --checkers 4 --transfers 3 >> /var/log/rclone_sync.log 2>&1
rclone sync 会检查每个文件的大小及修改时间,如果一致则视为无变化,否则视为有变化,会同步删除或新增或覆盖到远程。
(amh已设置每个整点进行数据库备份存放本地、且保存时间为180天,以控制文件大小、避免oss超额)