念念不忘
必有回响

利用ossfs备份网站

从12年学习建站到现在也差不多7年了,中间断断续续因为主机商跑路、自己操作失误等原因造成了多次的网站数据丢失。如果做好备份,说不定还能看到当年大学时期叫我们安装mysql的笔记。之间我介绍过《自动备份网站到DropBox》,但是现在把国外的站点都关了,主要的站点也都在国内阿里云,于是这个路子行不通了。于是通过关键字wordpress 备份 oss。找到了一个工具ossfs

1.环境说明

  • CentOS7.5
  • 自建LNMP环境
  • 和阿里云ESC同一个节点的OSS(设置低频访问)
  • 获取到access_key_id和access_key_secret

2.安装ossfs

ossfs并不能通过yum直接安装,需要下载操作系统对应的rpm包来安装。

下载ossfs_1.80.5_centos7.0_x86_64.rpm

wget https://github.com/aliyun/ossfs/releases/download/v1.80.5/ossfs_1.80.5_centos7.0_x86_64.rpm

安装依赖

yum install fuse
yum install fuse-libs

安装ossfs

rpm -ivh ossfs_1.80.5_centos7.0_x86_64.rpm

3.配置并挂载ossfs

创建配置文件

echo yourBucketName:access_key_id:access_key_secret > /etc/passwd-ossfs
chmod 640 /etc/passwd-ossfs

创建目录

mkdir /back

创建这个目录就是为了将oss挂载到该目录,以达到“扩容”的目的。

挂在ossfs

# oss bucket名称  目标目录  endpoint
ossfs yourBucketName /back -ourl=oss-cn-zhangjiakou-internal.aliyuncs.com

代表将oss-cn-zhangjiakou-internal.aliyuncs.com节点的“yourBucketName”挂载到本地文件系统中的“/back”目录。

检查效果

df -lh
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        909M     0  909M   0% /dev
tmpfs           920M     0  920M   0% /dev/shm
tmpfs           920M  560K  919M   1% /run
tmpfs           920M     0  920M   0% /sys/fs/cgroup
/dev/vda1        40G   17G   22G  44% /
ossfs           256T     0  256T   0% /back

这里可以看到/back已经有256T的容量了。

4.创建备份脚本

在“/data/script/”中创建buckup.sh

#!/bin/bash

TODAY=$(date +"%Y-%m-%d")

if [ -z $1 ];then
        echo Needed Usage arguments. Please Use --help to get more infomation.
        exit 1
fi

if [ "$1" == "db" ];then
        domain=$2
        dbname=$3
        mysqluser=$4
        mysqlpd=$5
        back_path=$6
        mysql_host=$7
        cd $back_path
        mysqldump -h$mysql_host -u$mysqluser -p$mysqlpd $dbname>$back_path/$domain\_db_$TODAY\.sql
        tar cvzf $back_path/$domain\_db_$TODAY\.tar.gz $domain\_db_$TODAY\.sql --remove-files

elif [ "$1" == "file" ];then
        domain=$2
        site_path=$3
        back_path=$4
        tar cvzf $back_path/$domain\_file_$TODAY\.tar.gz $site_path

elif [ "$1" == "--help" ];then
        clear
        echo =====================================Help infomation=========================================
        echo 1. Use For Backup database:
        echo The \$1 must be \[db\]
        echo \$2: \[domain\]
        echo \$3: \[dbname\]
        echo \$4: \[mysqluser\]
        echo \$5: \[mysqlpassword\]
        echo \$6: \[back_path\]
        echo \$7: \[mysql_host\]
        echo
        echo
        echo 2. Use For Backup webfile:
        echo The \$1 must be [\file\]:                                                                                                                                                     
        echo \$2: \[domain\]                                                                                                                                                               
        echo \$3: \[site_path\]                                                                                                                                                            
        echo \$4: \[back_path\]                                                                                                                                                            
        echo                                                                                                                                                                               
        echo =====================================End of Hlep==============================================                                                                                
        exit 0
else
        echo "Error!Please Usage --help to get help infomation!"                                                                                                                           
        exit 2
fi

使用方式:

  • 备份网站程序:/data/script/backup.sh file 网站域名 网站根目录 /back/
  • 备份数据库:/data/script/backup.sh db 网站域名 数据库名称 数据库用户名 数据库密码 /back/ 数据库IP

5.配置crontab

输入crontab -e,心中如下两个配置:

0  4 * * 0 sh /data/script/backup.sh db tvzr.com dbname db_user db_pwd /back/ 127.0.0.1
0  4 * * 0 sh /data/script/backup.sh file tvzr.com /usr/local/nginx/html/tvzr.com /back/

表示每周日凌晨4点开始备份,备份的频率自己掌握,尽量和自己更新文章的频率一致。

赞(0) 打赏
未经允许不得转载:码农志 » 利用ossfs备份网站
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏