现在使用lnmp.org的lnmp一键安装包的用户很多,目前最新版是lnmp1.5,我也用了很长时间了。最近呢,我又尝试了一下用Oneinstack来自定义化安装lnmp。安装过程中看到Oneinstack有备份数据的脚本,于是就尝试了一下把网站数据和数据库定时备份到阿里云对象存储。下面分享一下过程。

演示环境

  • Debian 9.0.0 64bit
  • Mysql 8.0.15 (MySQL Community Server - GPL)

大致步骤

注:前提是基于Oneinstack安装的lnmp。

  1. 创建阿里云OSS存储桶
  2. 创建阿里云OSS Access Key
  3. 配置backup_setup.sh
  4. 添加定时任务执行backup.sh

具体过程

  1. 创建阿里云OSS存储桶 示例这里我创建的是华东1区(杭州)的公共读的标准存储桶,名字为backup-uuwosi
  2. 创建阿里云OSS Access Key 回到对象存储首页,在右侧找到Access Key项,图中红框处 创建Access Key完成,得到AccessKey IDAccessKey Secret
  3. 配置backup_setup.sh 在SSH中进入到oneinstack/文件夹内 执行backup_setup.sh
    ./backup_setup.sh
    

    具体配置见图,备份的天数默认是5天,也就是在阿里云OSS中存储最近5天的备份,过期的自动删除。如果有需要可以自行更改 配置完成测试一下,执行备份脚本

    ./backup.sh
    

    看到如下信息表示成功备份

    mysql: [Warning] Using a password on the command line interface can be insecure.
    mysqldump: [Warning] Using a password on the command line interface can be insecure.
    Succeed: Total num: 1, size: 635. OK num: 1(upload 1 files).
    0.073839(s) elapsed
    Succeed: Total 0 objects. Removed 0 objects.
    0.064220(s) elapsed                          
    Succeed: Total num: 1, size: 127. OK num: 1(upload 1 files).
    0.098689(s) elapsed
    Succeed: Total 0 objects. Removed 0 objects.       
    0.078291(s) elapsed 
    

    然后你会在阿里云OSS存储桶里看到备份的文件

  4. 添加定时任务执行backup.sh 把执行备份任务的脚本添加到定时执行中
    crontab -e
    

    在任务列表添加一行

    0 3 * * * /root/oneinstack/backup.sh
    

    这条命令的意思是每天凌晨3点执行备份任务 注:如有需要,请将以上命令替换为你的backup.sh所在位置


Oneinstack备份脚本还支持备份到本地、远程主机、腾讯云COS、又拍云、七牛云、Amazon S3对象存储、Google Drive和Dropbox,有兴趣的同学可以尝试一下。