最近搬主题在入手了阿里云轻量服务器后,发现性价比不错,而且还很稳定。将自己的一个站点放到了上面,接下来需要考虑每天自动备份网站数据库的问题。对于搬主题来说,能不用插件就不用插件,直接一个脚本解决的问题。这里搬主题因为考虑到对象存储的私密性,因此考虑到将网站数据自动备份到阿里云的对象存储OSS上面,接下来就是分享这些操作的图文教程。自动备份思路总体的流程大概如下:在阿里云轻量服务器上挂载对象存储OSS—>编写自动备份脚本—>每日自动备份对于阿里云轻量服务器,这里搬主题比较推荐香港区域,确实比较稳定。可以参考如下文章:阿里云香港轻量云服务器性能网络2022最新评测2022年阿里云上云采购季攻略 35元/年最高优惠5000元接下来先介绍如何挂载阿里云的对象存储OSS。挂载阿里云的对象存储OSS既然我们要挂载对象存储OSS,那么就要考虑先购买阿里云的对象存储OSS。目前阿里云推出优惠,购买一年40G标准对象存储,只要8.1元/年。存储包挂载介绍和ESC共性:OSS与同地域的全部ecs内网互通 OSS内网IP是特殊IP段 全阿里云的vpc/经典机器都可以访问任一一个该地区的OSS 所以OSS和ecs只有地域关系;OSS内网传输不收流量费 但是收API操作费 这个费用包括但不限于读写次数 1块钱100W次;OSS外网传输费是0.3块多钱/GB;国内版OSS可以内网给国际站/日本站的机器用 只要你是OSS和ecs相同地区的就OK。购买OSS简单来说,阿里云轻量走OSS对象存储内网流量不要钱,操作费基本等同于无的价格。因此只要购买对象存储OSS容量即可。>>>阿里云对象存储OSS独家8.1元/年活动链接 /etc/passwd-ossfs
chmod 640 /etc/passwd-ossfsStep 2 接下来针对不同的系统版本,设置方式有所不同在/etc/init.d/目录下建立文件ossfscd /etc/init.d/
touch ossfs查看文件是否创建成功,用ls命令查看,创建成功后直接用vi命令编辑接下来把以下代码中的内容拷贝到这个新文件中。并将其中的your_xxx内容改成您自己的信息。#! /bin/bash
#
# ossfs Automount Aliyun OSS Bucket in the specified direcotry.
#
# chkconfig: 2345 90 10
# description: Activates/Deactivates ossfs configured to start at boot time.
ossfs your_bucket your_mountpoint -ourl=your_url -oallow_other注意改为自己对应的内容执行命令:chmod a+x /etc/init.d/ossfs上述命令是把新建立的ossfs脚本赋予可执行权限。您可以执行该脚本,如果脚本文件内容无误,那么此时oss中的bucket已经挂载到您指定的目录下了。执行命令:chkconfig ossfs on上述命令是把ossfs启动脚本作为其他服务,开机自动启动。在/etc/fstab中加入下面的命令ossfs#your_bucket_name your_mount_point fuse _netdev,url=your_url,allow_other 0 0设置自动备份脚本以上主要是挂载对象存储的过程。接下来我们要进行自动备份脚本的操作。可以重新登录SSH了,尽量根据自己需要将备份脚本放到root目录或者自己想要设置的目录内。这里主要使用的是一键备份VPS的脚本backup.shbackup.sh的主要特点有:1、支持 MySQL/MariaDB/Percona 的数据库全量备份或选择备份;2、支持指定目录或文件的备份;3、支持加密备份文件(需安装 openssl 命令,可选);4、支持上传至 Google Drive(需先安装 gdrive 并配置,可选);5、支持在删除指定天数本地旧的备份文件的同时,也删除 Google Drive 上的同名文件(可选)。下载该脚本并赋予执行权限:wget --no-check-certificate https://github.com/teddysun/across/raw/master/backup.sh
备用:https://raw.githubusercontent.com/freehao123/across/master/backup.sh
chmod +x backup.sh备份脚本的内容配置直接vi编辑backup.sh文件,相关的变量名说明:ENCRYPTFLG (加密FLG,true 为加密,false 为不加密,默认是加密)BACKUPPASS (加密密码,重要,务必要修改)LOCALDIR (备份目录,可自己指定)TEMPDIR (备份目录的临时目录,可自己指定)LOGFILE (脚本运行产生的日志文件路径)MYSQL_ROOT_PASSWORD (MySQL/MariaDB/Percona 的 root 用户密码)MYSQL_DATABASE_NAME (指定 MySQL/MariaDB/Percona 的数据库名,留空则是备份所有数据库)BACKUP (需要备份的指定目录或文件列表,留空就是不备份目录或文件)LOCALAGEDAILIES (指定多少天之后删除本地旧的备份文件,默认为 7 天)DELETE_REMOTE_FILE_FLG (删除 Google Drive 或 FTP 上的备份文件 FLG,true 为删除,false 为不删除)FTP_FLG (上传文件至 FTP 的 FLG,true 为上传,false 为不上传)FTP_HOST (连接的 FTP 域名或 IP 地址)FTP_USER (连接的 FTP 的用户名)FTP_PASS (连接的 FTP 的用户的密码)FTP_DIR (连接的 FTP 的远程目录,比如: public_html)※ MYSQL_DATABASE_NAME 是一个数组变量,可以指定多个。举例如下:MYSQL_DATABASE_NAME[0]=”phpmyadmin”MYSQL_DATABASE_NAME[1]=”test”※ BACKUP 是一个数组变量,可以指定多个。举例如下:BACKUP[0]=”/data/www/default/test.tgz”BACKUP[1]=”/data/www/default/test/”BACKUP[2]=”/data/www/default/test2/”如果只是备份数据库的话,可以参考如下的一些编写,就填这几个就行了。执行以下命令开始备份:./backup.sh我们可以在我们设置的路径下看到已经备份的文件和数据库。如何设置每日自动备份呢?接下来使用crontab -e命令进入定时任务。输入命令30 3 * * * /root/backup.sh代表每天凌晨3点30分自动执行脚本一次,即自动备份一次。然后保存即可。
THE END