由于我一直在这个博客所在的服务器折腾,经常安装软件等,有时候服务器会出现问题,可能将博客的数据丢失。为防止出现博客数据丢失,这里设置每日自动将博客备份,这样以后出现问题,可以很方便的恢复。
Ghost博客备份只需要ghost/content/data/ghost.db
和ghost/content/images
这两个文件夹下的内容即可。
这个博客的服务器在Vultr上购买,所以我可以将数据备份到Dropbox上,通过一个脚本实现每日自动备份。
配置过程
首先,登录dropbox,打开https://www.dropbox.com/developers/apps,点击creat app创建新的app,依次点击Dropbox API
、Full Dropbox
,app name随便取名,创建成功后进入刚刚创建的app管理页面,能看到App key、App secret后这个地方就完成了。
使用SSH连接上自己的vps,进行如下操作:
mkdir backup #创建目录
cd backup #进入目录
wget https://raw.github.com/andreafabrizi/Dropbox-Uploader/master/dropbox_uploader.sh --no-check-certificate #下载dropbox备份脚本
chmod 755 dropbox_uploader.sh #加执行权限
sh dropbox_uploader.sh #运行脚本
首次运行,需要输入Access token,通过Generated access token
键选择生成Access token
,然后输入,确认即可。这样,网盘配置就完成了。
接着我们新建一个自动备份脚本backup.sh
,输入以下代码:
#!/bin/bash
SCRIPT_DIR="/root/backup" #这个改成你存放刚刚下载下来的dropbox_uploader.sh的文件夹位置
DROPBOX_DIR="/backup" #这个改成你的备份文件想要放在 Dropbox下面的文件夹名称,如果不存在,脚本会自动 $
BACKUP_SRC="/var/www/lixinxing.xyz/content/images /var/www/lixinxing.xyz/content/data/ghost.db" #这个$
BACKUP_DST="/tmp" #这个是你暂时存放备份压缩文件的地方,一般用/tmp即可
# 下面的一般不用改了
NOW=$(date +"%Y.%m.%d")
DESTFILE="$BACKUP_DST/$NOW.tar.gz"
# 压缩文件
tar cfz "$DESTFILE" $BACKUP_SRC
# 用脚本上传到dropbox
$SCRIPT_DIR/dropbox_uploader.sh upload "$DESTFILE" "$DROPBOX_DIR/$NOW.tar.gz"
# 删除本地的临时文件
rm -f "$NOW-Databases.sql" "$DESTFILE"
运行backup.sh就可以将Ghost博客的数据库和照片文件备份到Dropbox中,我们也可以通过crontab新建一个定时任务,让系统每天凌晨1点50备份Ghost博客.
输入crontab -e
,在最底部添一行
50 1 * * * sh /home/user/backup/backup.sh
这样就能在每天1点50分运行脚本。如需要其他的自动备份定时周期,请看这篇文章linux下使用 crontab 设定定时任务。
成功备份后,打开Dropbox即可看到备份文件。