备份网站数据到百度网盘

11年前 17

之前因为网站数据丢失(个人失误),找到了一种很不错的备份网站数据方案,这也是我为什么喜欢用VPS,SSH实在好用。但是这样还是不行,败给buyVM就是一个例子。我用几个VPS之间相互备份,以为VPS是相互独立的,一个VPS出现问题是不会影响到其他VPS,但是这个损失告诉我千万不要把数据放在同一个空间商。百度网盘确实不错,因为它有离线下载,免费的离线下载,这也是其他网盘所没有的。其实我很少用网盘,或许不知道怎么很好的利用吧,或许害怕他不靠谱吧。不过相比空间,网盘太靠谱了。之前就有很多例子说要备份到dropbox,只可惜某种原因在国内dropbox行不通。同理,我们可以备份到百度网盘。这里提供手动和自动两个方案:

前提:还是需要以下代码[根据自己实际情况修改]:

#!/bin/bash
#Funciont: Backup website and mysql database
#Author: 皇家元林
#Website: https://hjyl.org/
#IMPORTANT!!!Please Setting the following Values!
######~Set MySQL UserName and password~######
MYSQL_UserName=数据库用户名
MYSQL_PassWord=数据库密码
######~Set MySQL Database you want to backup~######
Backup_Database_Name1=数据库名称
Backup_Database_Name2=数据库名称
Backup_Database_Name3=数据库名称
Backup_Database_Name4=数据库名称
#Values Setting END!

#define names
TodayWWWBackup=xhjyl_$(date +"%Y%m%d").tar.gz
TodayDBBackup=db-*-$(date +"%Y%m%d").sql.gz
OldWWWBackup=xhjyl_$(date -d -3day +"%Y%m%d").tar.gz
OldDBBackup=db-*-$(date -d -3day +"%Y%m%d").sql.gz

# backup nginx configure files
tar -czvf /home/wwwroot/hjyl.org/nginx_conf_$(date +%Y%m%d).tar.gz /usr/local/nginx/conf/vhost

#backup mysql
/usr/local/mysql/bin/mysqldump --add-drop-table -u$MYSQL_UserName -p$MYSQL_PassWord $Backup_Database_Name1 | gzip > /home/wwwroot/hjyl.org/db-$Backup_Database_Name1-$(date +"%Y%m%d").sql.gz
/usr/local/mysql/bin/mysqldump --add-drop-table -u$MYSQL_UserName -p$MYSQL_PassWord $Backup_Database_Name2 | gzip > /home/wwwroot/hjyl.org/db-$Backup_Database_Name2-$(date +"%Y%m%d").sql.gz
/usr/local/mysql/bin/mysqldump --add-drop-table -u$MYSQL_UserName -p$MYSQL_PassWord $Backup_Database_Name3 | gzip > /home/wwwroot/hjyl.org/db-$Backup_Database_Name3-$(date +"%Y%m%d").sql.gz
/usr/local/mysql/bin/mysqldump --add-drop-table -u$MYSQL_UserName -p$MYSQL_PassWord $Backup_Database_Name4 | gzip > /home/wwwroot/hjyl.org/db-$Backup_Database_Name4-$(date +"%Y%m%d").sql.gz

# backup wwwroot and mysql
tar -czvf /home/wwwroot/hjyl.org/xhjyl_$(date +%Y%m%d).tar.gz /home/wwwroot --exclude=default
rm $OldWWWBackup
rm $OldDBBackup

我这样是把所有的数据,包括数据库,打包到xhjyl_$(date +%Y%m%d).tar.gz这个文件里。将此代码保存为ssh.sh,并上传到/home/wwwroot目录下,此为前提。

1、手动方案。很简单,利用百度网盘的离线下载直接下载此文件即可,因为是离线下载,不需要你看着下,你只需提交链接,一切交给网盘好了。不过这还是很烦,不是吗?

2、自动方案。就是网上唯一流行的bpcs_uploader,百度pcs上传脚本[官网],不可否认,这是一个很牛逼的插件,dropbox还需要安装Linux版同步软件,而这个只需要一个PHP文件即可实现。如何安装初始化,我就不说了,直接看官方说明即可,或者百度一下,一大堆教程。

我是想说如何将手动变为自动。我将bpcs_uploader里的文件上传到/home/wwwroot下,添加权限chmod +x bpcs_uploader.php,然后安装初始化,然后将下面一句加进上面前提代码的最后面:

/home/wwwroot/bpcs_uploader.php upload /home/wwwroot/hjyl.org/$TodayWWWBackup $TodayWWWBackup

最后给VPS加个定时器,自动化就实现了。crontab -e:

0 1 * * * sh /home/wwwroot/ssh.sh #每天凌晨1点执行ssh.sh文件

bpcs_uploader_beta5
P.s. 如果早知道这么用,或许不会造成悲剧了。

17 条评论

  1. #1

    用虚拟主机的默默的路过。。。

  2. #2

    也可以啊就是百度密码忘记了

  3. #3

    空间有自动备份功能!

  4. #4

    比较喜欢的东西,可以学习下。

  5. #5

    我是把重要数据 > 同步到另外一台VPS(不同商家) + dropbox + 本地硬盘

  6. #6

    百度网盘本身能保证安全吗

  7. #7

    现在用的哪家的VPS?推荐下。。