最近在搞公司内网数据备份,在此记录下。拓扑如下:

环境描述:web服务器为lnmp环境,其中attachment目录是用户数据,大约有300G,很重要。mysql服务器每天零时备份数据库,备份的数据也需要推到异地。备份软件选用rsync,原因如下:

能更新整个目录和树和文件系统;
有选择性的保持符号链链、硬链接、文件属于、权限、设备以及时间等;
对于安装来说,无任何特殊权限要求;
对于多个文件来说,内部流水线减少文件等待的延时;

只同步增加的数据,效率更高;

搭建过程:

1,rsync服务端安装:

[root@backup ~]# rpm -qa rsync
rsync-3.0.9-18.el7.x86_64

这里已经安装rsync,如果没有安装,则使用下面的命令安装:

[root@backup ~]# yum install rsync -y

2,编辑rsync配置文件:

由于我是使用daemon模式去启动rsync,因此需要一个配置文件,位置为/etc/rsyncd.conf,以下是配置文件的内容:

# Rsync configuration file
uid = root
gid = root
port = 873
address = 192.168.1.222
max connections = 200
use chroot = yes
timeout = 200
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsyncd.lock
log format = %t %a %m %f %b
auth users = bkuser
secrets file = /etc/rsyncd.secrets[attachment]
path = /backup/1/attachment/
comment = "Poplar web data"
list = yes
read only = no
ignore errors = yes
hosts allow = 192.168.1.126/24
hosts deny = *[dbm]
path = /backup/1/mysql/db.pop.cn/
comment = "database backup"
list = yes
read only = no
ignore errors = yes
hosts allow = 192.168.1.137/24
hosts deny = *

3,创建相应的模块挂载点:

由于数据量比较大,所以我加了一块2T的磁盘单独做备份,挂载点为/disk/1,同时为了防止数据误删,我又在/下创建了backup目录,通过这个入口去链接真正的备份数据。结构如下:

[root@backup ~]# mkdir /backup
[root@backup ~]# mount /dev/sdb /disk/1/        #把2T的磁盘挂载到/disk/1/下
[root@backup ~]# ln -sv /disk/1/ /backup/1        #将/backup/1链接到/disk/1/‘/backup/1’ -> ‘/disk/1/’

4,设置服务器端权限:

[root@backup ~]# echo ‘bkuser:123456’ > /etc/rsyncd.secrets
[root@backup ~]# chmod 600 /etc/rsyncd.secrets

这里一定要将密码权限设置为600,否则后面推送文件时会报错。

5,启动rsync服务:

[root@backup ~]# rsync --daemon --config=/etc/rsyncd.conf
#检查rsync启动情况
[root@backup ~]# netstat -tnlp | grep rsync
tcp        0      0 192.168.1.222:873       0.0.0.0:*               LISTEN      1073/rsync
[root@backup ~]# ps -ef | grep -v grep | grep rsync
root      1073     1  0 03:51 ?        00:00:00 rsync --daemon --config=/etc/rsyncd.conf

可以看到rsync服务已经启动成功。

6,设置rsync开机自启动:

[root@backup ~]# echo '/usr/bin/rsync --daemon --config=/etc/rsyncd.conf' >> /etc/rc.d/rc.local
#这里要注意,/etc/rc.d/rc.local这个文件一定要有可执行权限 chmod +x /etc/rc.d/rc.local
#尽量使用命令的绝对路径。

7,客户端配置权限:

#web主机
[root@web ~]# echo '123456' > /etc/rsync.passwd
[root@web ~]# chmod 600 /etc/rsync.passwd#mysql主机
[root@mysql ~]# echo '123456' > /etc/rsync.passwd
[root@mysql ~]# chmod 600 /etc/rsync.passwd

8,客户端推送命令:

[root@web ~]# rsync -avz /mnt/wwwroot/poplar/public/attachment/ bkuser@192.168.1.222::attachment --password-file=/etc/rsync.passwd
rsync: failed to connect to 192.168.1.222 (192.168.1.222): No route to host (113)
rsync error: error in socket IO (code 10) at clientserver.c(122) [sender=3.0.9]

报错,No route to host,首先想到的就是防火墙,查看rsync服务端:

[root@backup ~]# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED
ACCEPT     all  --  anywhere             anywhere
INPUT_direct  all  --  anywhere             anywhere
INPUT_ZONES_SOURCE  all  --  anywhere             anywhere
INPUT_ZONES  all  --  anywhere             anywhere
DROP       all  --  anywhere             anywhere             ctstate INVALID
REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited
#果然有策略
[root@backup ~]# iptables -F
[root@backup ~]# service iptables save
The service command supports only basic LSB actions (start, stop, restart, try-restart, reload, force-reload, status). For other actions, please try to use systemctl.
#又报错,这里需要安装iptables-services服务
[root@backup ~]# yum install iptables-services
[root@web ~]# systemctl enable iptables
Created symlink from /etc/systemd/system/basic.target.wants/iptables.service to /usr/lib/systemd/system/iptables.service.
[root@web ~]# systemctl start iptables
[root@web ~]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]#再次推送:
[root@web ~]# rsync -avz /mnt/wwwroot/poplar/public/attachment/ bkuser@192.168.1.222::attachment --password-file=/etc/rsync.passwd
...
sent 1044543 bytes  received 9553 bytes  2108192.00 bytes/sec
total size is 4351974  speedup is 4.13
#推送成功

查看服务器端备份情况:

[root@backup ~]# ll /backup/1/attachment/
#发现有一个软链接文件的源文件没有同步过来(不停的闪红色)

查看rsync的帮助信息:

-L, --copy-links            transform symlink into referent file/dir

使用-L 选项可以备份软链接文件的源文件,于是我们的推送命令变成了这样:

[root@web ~]# rsync -avzLP /mnt/wwwroot/poplar/public/attachment/ bkuser@192.168.1.222::attachment --password-file=/etc/rsync.passwd

数据库端的推送命令和web端类似,只是不需要-L参数,这里就不演示了。

转载于:https://blog.51cto.com/hld1992/2052617

使用rsync完成内网数据备份相关推荐

  1. 内网异地备份_服务器数据全自动异地备份解决方案

    随着计算机化系统在制药企业的广泛应用,尤其是GMP附录<计算机化系统>的颁布和实施,制药企业的计算机化系统的验证被提上日程,日益受到重视.然而,制药企业的计算机化系统验证既需要制药和计算机 ...

  2. 鹿游通 内网数据交换服务

    今天是2014年5月24日,到今天的这个点,使用阿里云服务器已经1年了!自从接触了计算机之后,我对此就特别沉迷,在上大学之前喜欢研究黑客技术,老觉得黑客牛B得很,高手=黑客,黑客=高手这种概念已经在我 ...

  3. 内网异地备份_用批处理实现局域网内的异地备份

    用批处理实现局域网内的异地备份 Post by 晨曦之家 , 2011-1-19, Views:121 我们平时在服务器上会用备份软件或者数据库维护计划来备份我们的数据库, 在重装系统或 者数据库损坏 ...

  4. 群晖能从linux备份数据吗,通过rsync将Linux服务器数据备份到群晖

    linux主机同步命令 1. 使用加密的rsync服务传输数据(ssh加密) 使用加密rsync,其实就是使用ssh传输,所以可以不用启动群晖的rsync daemon服务,可以设置ssh免密登录或者 ...

  5. 采集数据用云服务器与公司网站,网络爬虫软件,企业版,大企业,采集内网数据,私有云部署-集搜客GooSeeker...

    爬虫路线规划能力 集搜客GooSeeker网络爬虫沿着线索扩展爬行范围,而且不限广度和深度.免费在线版用户在MS谋数台的爬虫路线工作台上规划爬虫路线,主要能力就是:从抓取到的网址上建立下一级线索,这是 ...

  6. 数据上云(单机或内网C/S升级INTERNET版)

    很多以前的C/S软件只能在内网使用,现在为了软件的高大上,都需要弄个微信公众平台或者手机版本查看数据. 方案一:最简单         租一个服务器,安装一个MYSQL数据库,单独开发一个程序定时向M ...

  7. qnap备份文件服务器,完整的数据备份方案

    ◆ 完整的数据备份方案 在数据安全方面Turbo NAS提供了完整的数据备份方案,包括本地备份.远程备份及云端备份. 本地备份方案包括 : ·QNAP独家备份软件NetBak Replicator · ...

  8. 计算机系统备份的原则和策略,计算机系统数据备份机制与策略

    计算机系统数据备份机制与策略 20年第5 05期 华中电力 第 l卷 8 计算机系统数据备份机制与策略 耿煜 (樊学院机械系,北襄樊襄湖 4 15 ) 4 03 摘要:针对当今计算环境中不断增长的数据 ...

  9. 内网穿透远程访问家里的群晖NAS 1-2

    系列文章 内网穿透远程访问家里的群晖NAS 1-2 内网穿透远程访问家里的群晖NAS 2-2 随着科学技术的发展,各类型的电子设备已经全面覆盖了我们的生活和工作,为了让这些电子设备能够连接为一个整体, ...

最新文章

  1. OSPF-stub/totaly stub
  2. Java 单列模式(Singleton)
  3. ArcGIS案例学习1_2
  4. 进程间通信 - 动态链接库实现
  5. alfresco mysql搭建_Alfresco Community 4.0.d 安装图解
  6. c语言股票软件开发,一种使用Objcctivc语言开发的股票软件系统的制作方法
  7. java将excel转换成txt_java将excel文件转换成txt格式文件
  8. c语言的关键字及其作用,c语言关键字及其含义 详细归纳
  9. 我的毕业设计后端技术栈
  10. oracle常用sql语句查询语句,Oracle常用sql语句
  11. Angular cdk 学习之 drag-drop
  12. Linux进程中有xorg,linux – Xorg如何工作?
  13. 几何画板演示空间几何体三视图的步骤
  14. 计算机台式右上角三个灯作用,键盘上的三个灯分别代表什么意思 三个灯各有什么作用呢...
  15. JAVA基础-字符串
  16. uniapp微信H5公众号授权与支付
  17. 计算信号波形上升时间下降时间算法软件(Labview版)
  18. php 读取指定路径照片,必应每日图片合集程序之php读取指定目录图片
  19. 火灾自动报警系统施工及验收规范
  20. byvoid阿里第二弹:不是技术牛人,如何拿到国内IT巨头的Offer

热门文章

  1. scala代码示例_Scala异常处理示例
  2. jQuery has(),not()和filter()函数示例
  3. RPC框架的实现原理是什么?-开课吧
  4. Java 的强引用、弱引用、软引用、虚引用
  5. abp 基于api接口的页面内容提交
  6. iOS病毒门还没完:美国210家企业仍在用感染App
  7. bzoj 1076 奖励关 状压+期望dp
  8. javascript-从toString方法在判断复杂数据类型上的妙用,引申到对原型链的理解...
  9. soft music
  10. 四格漫画《MUXing》——请客记