最近搬主题在入手了阿里云轻量服务器后,发现性价比不错,而且还很稳定。将自己的一个站点放到了上面,接下来需要考虑每天自动备份网站数据库的问题。对于搬主题来说,能不用插件就不用插件,直接一个脚本解决的问题。
这里搬主题因为考虑到对象存储的私密性,因此考虑到将网站数据自动备份到阿里云的对象存储OSS上面,接下来就是分享这些操作的图文教程。
自动备份思路
总体的流程大概如下:在阿里云轻量服务器上挂载对象存储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元/年活动链接<<<
购买的时候记得选择和自己轻量服务器同区域的。比如你的阿里云轻量服务器是香港的,那就选择香港区域的对象存储,如果是上海的,那就选择上海区域的对象存储。如果是国内的话,直接选择大陆通用,不过建议还是同区域会更好。
确认无误后,付款即可。
创建Bucket
购买完成后,就可以前往阿里云的后台对象存储的界面创建Bucket了。
在此快速购买存储包然后进入控制台创建bucket
:填写名称及选择区域,记得选择和自己阿里云轻量服务器同样的区域。
安装OSSFS
用SSH登陆自己的阿里云轻量服务器,先输入如下的命令
wget https://github.com/aliyun/ossfs/releases/download/v1.80.5/ossfs_1.80.5_centos7.0_x86_64.rpm
centos7
为例,其他系统版本ossfs
下载:https://github.com/aliyun/ossfs/releases
安装:
yum localinstall ossfs_1.80.5_centos7.0_x86_64.rpm
如果是Ubuntu/Debian系统安装:
首先安装gdebi
,然后使用gdebi
安装。
sudo apt-get update
sudo apt-get install gdebi-core
sudo gdebi your_ossfs_package
挂载OSS
获取 AccessKeyId/Secret
登录阿里云控制台。单击页面左上方的管理控制台。将鼠标移至右上方的“账号管理”图标选择accessKeys
,然后创建key
。
注意:提示信息中的云账号
AccessKey
是您访问阿里云API的密钥,具有该账户完全的权限,请务必妥善保管。请勿通过任何方式(如Github等)将AccessKey
公开至外部渠道,以免被恶意利用而造成安全威胁。强烈建议您遵循阿里云安全最佳实践,使用RAM子用户AccessKey
来进行API调用。
挂载过程:
挂载过程看起来很繁琐,实际上就几步就操作完成了,请耐心看完。
设置bucket name
(购买后创建的bucket名称) 和 AccessKeyId/Secret
信息,将其存放在/etc/passwd-ossfs
文件中,注意这个文件的权限必须正确设置,建议设为640
。
echo my-bucket:my-access-key-id:my-access-key-secret > /etc/passwd-ossfs
chmod 640 /etc/passwd-ossfs
my-bucket:my-access-key-id:my-access-key-secret
对应为 bucket名称 : AccessKey ID : Access Key Secret
将OSS bucket
挂载到指定目录:
ossfs my-bucket my-mount-point -ourl=my-oss-endpoint
oss endpoint
地址可以在OSS控制台找到 一定要选择内网地址。
示例(以阿里云香港区域轻量为例):
将my-bucket
这个bucket
挂载到/tmp/ossfs
目录下,AccessKeyId
是abcde
,AccessKeySecret
是123456
,oss endpoint
是oss-cn-hongkong-internal.aliyuncs.com
echo my-bucket:abcde:123456 > /etc/passwd-ossfs
chmod 640 /etc/passwd-ossfs
mkdir /tmp/ossfs
ossfs my-bucket /tmp/ossfs -ourl=http://oss-cn-hongkong-internal.aliyuncs.com
挂载成功后可以通过如下命令查看:
df -h
root@centos:~# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 486M 0 486M 0% /dev
tmpfs 496M 0 496M 0% /dev/shm
tmpfs 496M 6.7M 490M 2% /run
tmpfs 496M 0 496M 0% /sys/fs/cgroup
/dev/vda1 25G 2.5G 21G 11% /
tmpfs 100M 0 100M 0% /run/user/0
ossfs 256T 0 256T 0% /www/wwwroot/default/ossfs
这样就算挂载成功了。
设置开机自动挂载
Q: 如何开机自动挂载ossfs?
- Step 1
首先请参考使用说明,把bucket name
,access key id/secret
等信息写入/etc/passwd-ossfs
,并将该文件权限修改为640。
echo your_bucket_name:your_access_key\_id:your_access_key_secret > /etc/passwd-ossfs
chmod 640 /etc/passwd-ossfs
- Step 2
接下来针对不同的系统版本,设置方式有所不同
- 在
/etc/init.d/
目录下建立文件ossfs
cd /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.sh
backup.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分自动执行脚本一次,即自动备份一次。
然后保存即可。
1.本站内容仅供参考,不作为任何法律依据。用户在使用本站内容时,应自行判断其真实性、准确性和完整性,并承担相应风险。
2.本站部分内容来源于互联网,仅用于交流学习研究知识,若侵犯了您的合法权益,请及时邮件或站内私信与本站联系,我们将尽快予以处理。
3.本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
4.根据《计算机软件保护条例》第十七条规定“为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。”您需知晓本站所有内容资源均来源于网络,仅供用户交流学习与研究使用,版权归属原版权方所有,版权争议与本站无关,用户本人下载后不能用作商业或非法用途,需在24个小时之内从您的电脑中彻底删除上述内容,否则后果均由用户承担责任;如果您访问和下载此文件,表示您同意只将此文件用于参考、学习而非其他用途,否则一切后果请您自行承担,如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
5.本站是非经营性个人站点,所有软件信息均来自网络,所有资源仅供学习参考研究目的,并不贩卖软件,不存在任何商业目的及用途
暂无评论内容