资讯专栏INFORMATION COLUMN

原创自动备份Linux服务器数据到七牛云存储Shell脚本程序-用七牛自动备份VPS中的网站数据

KavenFan / 1463人阅读

摘要:七牛的,到获取,登录七牛后在七牛的帐号设置密钥中可找到。要备份的网站代码目录。计划任务脚本定时执行时间,默认凌晨分进行备份配置内容结束。

20140211234856
这是我公开发布的第一个Shell脚本程序,这能极大的方便Linux服务器管理员使用它自动备份数据到七牛云存储。

应网友需求发布了Windows版本,详情见:http://wyr.me/330.html

这个Linux脚本用shell编写,源代码是公开的,上传组件利用了七牛提供的qrsync。你可以下载我的Shell进行修改(代码全部做了中文注释)。当然对于普通用户,你可以直接按照下面的步骤轻松进行服务器数据备份。

这个脚本支持的备份程序有:网站的代码目录,指定的MySQL数据库,Nginx或Apache的配置文件(即一个的数据库导出备份和两个目录的备份。

脚本备份顺序:1.删除本地保存的前n天数据(可指定n的数值),自动导出指定的数据库.sql文件,压缩数据库为以时间命名的tar.gz格式文件。2.压缩网站代码目录下的所有文件并打包为以时间命名的tar.gz格式文件。3.压缩配置文件目录下的所有文件并打包为以时间命名的tar.gz格式文件。4.将上述三个压缩文件包加密后压缩为zip加密压缩文件,本地保留3天备份。4.将这个zip加密压缩文件放入一个uuid生成的随机目录中。5.将最新的一个zip加密文件连同起所在目录上传到用户指定的七牛云存储,同时生成一个防破解的下载地址发送到管理员邮箱。

从上述顺序可以看出,这个脚本对网站备份及上传的处理是非常安全的,对数据进行了多级加密。

以下是面对新手的简单视频教程:

正式开始安装脚本程序:
首先,使用putty或同类软件通过SSH登陆Linux服务器。【请以root身份登陆,否则有可能导致备份失败!】

1
cd /root
执行下面这个命令下载对应的脚本程序。(如果你担心这个数据包中的内容是否安全,可以本地下载后使用七牛官方的qrsync文件替换,也可以使用文本文档打开.sh程序查看这个脚本的源代码。本人承诺没有任何窃取数据的代码,请在http://wyr.me下载本数据包以确保您的数据安全)

Linux 32位版本:

1
wget http://wyrapp.qiniudn.com/linux32bfjb.tar.gz
Linux 64位版本:

1
wget http://wyrapp.qiniudn.com/linux64bfjb.tar.gz
Mac OS 版本:

1
wget http://wyrapp.qiniudn.com/macbfjb.tar.gz

下载完毕后,接着顺序执行如下命令:

1
tar -xzvf linux32bfjb.tar.gz #解压文件,请将文件名修改为对应版本。
1
sh /root/bfjb/bfjb.sh #执行向导程序进行配置
接下来会进入一个引导界面,如果你的Linux安装了中文支持,则可以看到中文标题。如果没有安装也没关系,为了兼容所有操作系统我使用英文作为提示。按提示输入相应信息。

QQ20140211234925

以上英文提示的信息输入的顺序和下面的配置代码顺序一样,对应输入即可,很方便。

01

以下是配置内容,直接运行脚本即可出现配置向导,请勿手动修改!

02

03

七牛绑定的空间名称(bucket)。

04
QINIUMC=x
05

备份所需要的脚本文件所在目录,如按照博文顺序在root目录执行的wget的无需修改。

06
QINIUJB=/root/bfjb
07

七牛的AccessKey,到http://portal.qiniu.com/获取,登录七牛后在七牛的“帐号设置”-“密钥”中可找到。

08
QINIUAccessKey=abcd1234
09

七牛的SecretKey,到http://portal.qiniu.com/获取,登录七牛后在七牛的“帐号设置”-“密钥”中可找到。

10
QINIUSecretKey=abcd1234
11

备份密码,请务必输入20字符以上的高强度密码,目前zip的暴力破解速度非常快。

12
BFpassword=x123
13

要备份的数据库名,如需备份多个网站或多个数据库请制作做个脚本在不同之间执行,这样能降低服务器因为备份性能受到的影响。

14
MYSQL_SJNAME=x123
15

Mysql用户名(要有对应数据库的导出权限,可以用root,也可以用绑定了对应用户名的数据库)

16
MYSQL_USER=root
17

mysql密码(对应MYSQL_USER)

18
MYSQL_PASS=x123
19

数据库发送到的邮箱,如需使用请先安装mail并去掉本行和下面相关注释,CentOS6.4默认已经安装,可以直接用命令mail查看是否安装。

20
MAIL_TO=a@12345679.cn
21

要备份的网站代码目录。

22
WEB_DATA=/home/wwwroot
23

要备份的数据库mysqldump所在地址,如使用LNMP此项无需修改。

24
MYSQL_DATA=/usr/local/mysql/bin/mysqldump
25

要备份的配置文件所在地址,如使用LNMP此项无需修改。

26
PZWJ_DATA=/usr/local/nginx/conf
27

本地备份目录地址,一般来说默认即可,也可填写合法地址,请事先创建该目录*(2014年2月12日 00:35:26添加)。如有挂载第二个磁盘,建议填写磁盘剩余量大的磁盘目录地址。

28
BDBF=/home/backup
29

本地备份保留时间,必须是数字,如不保存填“0”,不能是负数。

30
bdblsjday=3
31

计划任务:脚本定时执行时间,默认凌晨00:01分进行备份

32
JHRW="01 00 * * *"
33

配置内容结束。

值得注意的是,为了您更编辑的使用这个脚本程序,我已经添加了crontab处理程序,只需在向导中(提示的地方)输入即可。例如:”01 00 * * *”。

crontab的范例格式:
下面是c r o n t a b的格式:
分< >时< >日< >月< >星期< >要运行的命令
其中< >表示空格。
C r o n t a b文件的一个条目是从左边读起的,第一列是分,最后一列是要运行的命令,它位
于星期的后面。
在这些域中,可以用横杠-来表示一个时间范围,例如你希望星期一至星期五运行某个作
业,那么可以在星期域使用1 – 5来表示。还可以在这些域中使用逗号“,”,例如你希望星期一
和星期四运行某个作业,只需要使用1 , 4来表示。可以用星号来表示连续的时间段。如果你
对某个表示时间的域没有特别的限定,也应该在该域填入
。该文件的每一个条目必须含有5
个时间域,而且每个域之间要用空格分隔。该文件中所有的注释行要在行首用#来表示。

crontab条目举例

这里有c r o n t a b文件条目的一些例子:

30 21* * * /apps/bin/cleanup.sh

上面的例子表示每晚的2 1 : 3 0运行/ a p p s / b i n目录下的c l e a n u p . s h。

45 4 1,10,22 * * /apps/bin/backup.sh

上面的例子表示每月1、1 0、2 2日的4 : 4 5运行/ a p p s / b i n目录下的b a c k u p . s h。

10 1 * * 6,0 /bin/find -name “core” -exec rm {} ;

上面的例子表示每周六、周日的1 : 1 0运行一个f i n d命令。

0,30 18-23 * * * /apps/bin/dbcheck.sh

上面的例子表示在每天1 8 : 0 0至2 3 : 0 0之间每隔3 0分钟运行/ a p p s / b i n目录下的d b c h e c k . s h。

0 23 * * 6 /apps/bin/qtrend.sh

上面的例子表示每星期六的11 : 0 0 p m运行/ a p p s / b i n目录下的q t r e n d . s h。

你可能已经注意到上面的例子中,每个命令都给出了绝对路径。当使用c r o n t a b运行s h e l l

脚本时,要由用户来给出脚本的绝对路径,设置相应的环境变量。记住,既然是用户向c r o n

提交了这些作业,就要向c r o n提供所需的全部环境。不要假定c r o n知道所需要的特殊环境,它

其实并不知道。所以你要保证在s h e l l脚本中提供所有必要的路径和环境变量,除了一些自动

设置的全局变量。

———————–
知识共享许可协议
本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

原创文章,您可以在上述协议允许的范围内转载(转载及表示您同意上述协议),请注明: 文章来自王轶的博客,本文地址:原创自动备份Linux服务器数据到七牛云存储Shell脚本程序-用七牛自动备份VPS中的网站数据(http://wyr.me/314.html)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/20680.html

相关文章

  • 原创自动备份Linux务器数据到七牛云存储Shell脚本程序-用七牛自动备份VPS中的网站数据

    摘要:七牛的,到获取,登录七牛后在七牛的帐号设置密钥中可找到。要备份的网站代码目录。计划任务脚本定时执行时间,默认凌晨分进行备份配置内容结束。 20140211234856 这是我公开发布的第一个Shell脚本程序,这能极大的方便Linux服务器管理员使用它自动备份数据到七牛云存储。 应网友需求发布了Windows版本,详情见:http://wyr.me/330.html 这个Linux...

    booster 评论0 收藏0
  • 原创Windows版本务器数据备份bat批处理-用七牛自动备份VPS中的网站数据

    摘要:截图顺应网友需求写了版本的服务器备份程序七牛云存储。七牛的,到获取,登录七牛后在七牛的帐号设置密钥中可找到。 QQ截图20140212171616 顺应网友需求写了Windows版本的服务器备份程序for七牛云存储。老规矩,为了数据安全,用开放源代码的bat来编写。 Linux版本见:http://wyr.me/314.html 备份程序下载(还是那句话,为了安全,你可以去七牛官方...

    Cobub 评论0 收藏0
  • 原创Windows版本务器数据备份bat批处理-用七牛自动备份VPS中的网站数据

    摘要:截图顺应网友需求写了版本的服务器备份程序七牛云存储。七牛的,到获取,登录七牛后在七牛的帐号设置密钥中可找到。 QQ截图20140212171616 顺应网友需求写了Windows版本的服务器备份程序for七牛云存储。老规矩,为了数据安全,用开放源代码的bat来编写。 Linux版本见:http://wyr.me/314.html 备份程序下载(还是那句话,为了安全,你可以去七牛官方...

    Jeffrrey 评论0 收藏0
  • 定时备份 MySQL 并上传七牛

    摘要:常见的数据存储方式有,本机存储上传到远程服务器云存储如阿里云七牛云存储等甚至本地也行。那我们可以尝试,写个脚本定时备份数据库,然后自动上传到指定服务器或云存储。这里,我们说说服务器下备份并上传到七牛云存储的方式。 多数应用场景下,我们需要对重要数据进行备份、并放置到一个安全的地方,以备不时之需。常见的 MySQL 数据备份方式有,直接打包复制对应的数据库或表文件(物理备份)、mysql...

    30e8336b8229 评论0 收藏0
  • ZFile自建免费公共网盘服务-支持阿里云OSS,OneDrive,FTP,S3协议等云存储

    对于网站存储的需求,大多数人还是以私有网盘为主,目的是为了可以存储属于私人的视频、文档、音频等资料。但是,也有不少的人想要搭建一个公共的网盘,主要目的是可以方便所有人查看、浏览和下载、使用,同时也提供视频在线播放,变成影视站点。这样的公共网盘服务搭建起来并不是很复杂,但是苦于高昂的存储费用,有的人盯上了超大容量且免费的网盘服务,例如OneDrive,团队版甚至可以达到TB以上,将OneDrive变...

    番茄西红柿 评论0 收藏2637

发表评论

0条评论

最新活动
阅读需要支付1元查看
<