本节使用到的指令,crontab,vim,rsync。

只将实现顺序流程,细节知识自己查。

首先,明确服务器要备份的数据有哪些,假设需要备份的数据为:
1.网站文件:/wwwroot
2.数据库文件:/mysql/var
3.网站配置:/vhost

这三个路径,要以实际的为准,切记切记!

然后,两台服务器都需要安装rsync。
其中,原始数据服务器的rsync要修改配置,帐号最好单独建立。

重写/etc/rsyncd.conf的内容如下:

[websitedata]
path = /home/wwwroot
use chroot = yes
read only = yes
list = yes
uid = backupaccount
gid = backupaccount
strict modes = yes
hosts allow = 127.0.0.0,127.0.0.1
hosts deny = *
ignore errors = no
ignore nonreadable = yes
transfer logging = no
timeout = 600
refuse options = checksum dry-run
dont compress = *.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz
[mysqldata]
path = /usr/local/mysql/var
use chroot = yes
read only = yes
list = yes
uid = backupaccount
gid = backupaccount
strict modes = yes
hosts allow = 127.0.0.0,127.0.0.1
hosts deny = *
ignore errors = no
ignore nonreadable = yes
transfer logging = no
timeout = 600
refuse options = checksum dry-run
dont compress = *.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz
[webconfig]
path = /usr/local/nginx/conf/vhost
use chroot = yes
read only = yes
list = yes
uid = backupaccount
gid = backupaccount
strict modes = yes
hosts allow = 127.0.0.0,127.0.0.1
hosts deny = *
ignore errors = no
ignore nonreadable = yes
transfer logging = no
timeout = 600
refuse options = checksum dry-run
dont compress = *.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz

上述就是配置,其中中括号的是模块名,path是目录路径,uid和gid是鉴权的帐号,hosts allow是指允许的IP。

配置修改好以后,使用如下指令运行原始数据服务器的rsync服务:

/usr/bin/rsync --daemon --config=/etc/rsyncd.conf

需要随机启动的,自己查找如何将上述指令设置为开机启动。这样,原始服务器的服务就处理好了。

现在来处理备份服务器,备份服务器需要定时下载原始服务器的数据,增量备份(不懂的自己查增量是啥意思)。

假设备份服务器我们要讲数据备份到/mnt/backup/的目录,原始数据服务器的IP以127.0.0.1为例,则建议执行如下指令创建对应的备份目录:

mkdir /mnt/backup/127.0.0.1/
mkdir /mnt/backup/127.0.0.1/mysqldata/
mkdir /mnt/backup/127.0.0.1/websitedata/
mkdir /mnt/backup/127.0.0.1/webconfig/

然后创建一个排除目录,以此排除不需要的文件或者文件夹

vim /mnt/backup/exclude.list

内容为:

mysql-bin*
mysql
performance_schema
*.err
*.pid
default

还需要指定backupaccount账户对应的密码,执行如下指令:

vim /root/127.0.0.1

内容为127.0.0.1的backupaccount账户的密码。

这样基础工作就做好了,下面添加计划任务:
输入指令:

crontab -e

添加如下内容:

0 0 * * * rsync -vzrtopg root@127.0.0.1::webconfig /mnt/backup/127.0.0.1/webconfig/ --exclude-from=/mnt/backup/exclude.list --password-file=/root/127.0.0.1 >> /mnt/backup/127.0.0.1/webconfig.log 2>&1
5 0 * * * rsync -vzrtopg root@127.0.0.1::mysqldata /mnt/backup/127.0.0.1/mysqldata/ --exclude-from=/mnt/backup/exclude.list --password-file=/root/127.0.0.1 >> /mnt/backup/127.0.0.1/mysqldata.log 2>&1
10 0 * * * rsync -vzrtopg root@127.0.0.1::websitedata /mnt/backup/127.0.0.1/websitedata/ --exclude-from=/mnt/backup/exclude.list --password-file=/root/127.0.0.1 >> /mnt/backup/127.0.0.1/websitedata.log 2>&1

上述三条指令的意思自己查。
实现的效果就是,每日0点的0分、5分、15分,分别备份网站配置,数据库配置,网站数据并将输出结果保存到对应的log日志里。

这样,一台服务器的备份就处理结束了。

方法就是这些,深入研究请自行本机测试。

Related Posts: Linux服务器运维之定时备份远程服务器数据 :