因为公司服务要做迁移 ,对公司服务器之前的结构进行梳理。 (Ubuntu16)
单机服务器。 mysql , 文件 全部在同一个服务器 。 并且服务器 图片数量已经9G , 需要迁移 并且重新备份。
旧文件 放在单机服务器上。 新文件搭建一个fastfdsfu服务器进行 上传
之前尝试了scp 进行备份。 但是scp 备份不会执行增量备份。 且scp 适合小文件备份
故 尝试rsync 备份
rsync的功能特性
rsync可以镜像保存整个目录树和文件系统
rsync可以增量同步数据,文件传输效率高,因而同步时间很短
可以保持原有文件的权限、时间等属性
加密传输数据,保证数据的安全性。
rsync的四种模式
本地shell模式(复制本地指定目录到另一个目录)
远程shell模式(复制本地指定目录到远程主机目录)
列表模式(查看本地或远程主机的指定目录)
服务器模式(远程容灾服务器备份)
这次我想使用的就是服务器模式- 远程容灾备份
安装
yum -y install rsync
不存在rsync 服务
尝试启动 rsync
rsync --daemon
因为ubuntu 是默认安装rsync 服务, 但是没有 配置文件 。可以copy 下面默认配置
# sample rsyncd.conf configuration file
# GLOBAL OPTIONS
motd file=/etc/motd #登录欢迎信息
log file=/var/log/rsyncd #日志文件
# for pid file, do not use /var/run/rsync.pid if
# you are going to run rsync out of the init.d script.
pid file=/var/run/rsyncd.pid
syslog facility=daemon
#socket options=
# MODULE OPTIONS
[rsync]
comment = public archive
path = /home/soft/rsync
use chroot = yes
# max connections=10 #最大连接数
lock file = /var/lock/rsyncd
# the default for read only is yes...
read only = yes
list = yes
uid = nobody
gid = nogroup
# exclude =
# exclude from =
# include =
# include from =
# auth users =
# secrets file = /etc/rsyncd.secrets
strict modes = yes
# hosts allow =
# hosts deny =
ignore errors = no
ignore nonreadable = yes
transfer logging = no
# log format = %t: host %h (%a) %o %f (%l bytes). Total %b bytes.
timeout = 600
refuse options = checksum dry-run
dont compress = *.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz
自己修改 path = /home/soft/rsync目录 (看个人情况)
修改完后在/etc/下新建一文件rsyncd.pass
#vi /etc/rsyncd.pass
backup:backup
:wq
修改rsyncd.pass权限
chmod 600 /etc/rsyncd.pass
再次启动 , 查看端口 一般默认端口是873
对配置进行修改
# sample rsyncd.conf configuration file
# GLOBAL OPTIONS
motd file=/etc/motd #登录欢迎信息
log file=/var/log/rsyncd #日志文件
# for pid file, do not use /var/run/rsync.pid if
# you are going to run rsync out of the init.d script.
pid file=/var/run/rsyncd.pid
syslog facility=daemon
#socket options=
# MODULE OPTIONS
[rsync]
comment = public archive
path = /mnt/rujian
use chroot = yes
# max connections=10 #最大连接数
lock file = /var/lock/rsyncd
# the default for read only is yes...
read only = yes
list = yes
uid = root
gid = root
# exclude =
# exclude from =
# include =
# include from =
# auth users =
# secrets file = /etc/rsyncd.secrets
strict modes = yes
secrets users=/etc/server.password
list=false
authz users=backup
hosts allow =*
hosts deny =10.90.16.5
ignore errors = no
ignore nonreadable = yes
transfer logging = no
# log format = %t: host %h (%a) %o %f (%l bytes). Total %b bytes.
timeout = 600
refuse options = checksum dry-run
dont compress = *.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz
server.password 文件要自己创建
给 密码文件权限 600
chmod 600 /etc/server.password
配置文件含义
uid 此选项指定当该模块传输文件时守护进程应该具有的用户ID,默认值是“nobody”
gid 此选项指定当该模块传输文件时守护进程应该具有的用户组ID,默认值是“nobody”
max connections 此选项指定模块的最大并发链接量数量,以保护服务器。超过限制的连接请求将被暂时限制,默认值是0,即没有限制
strict modes 此选项指定是否检查口令文件的权限,yes为检查口令文件权限,反之为no。如果设置为yes,密码文件的权限必须为root用户权限。
pid file 此选项用来指定rsync守护进程对应的PID文件路径
lock file 此选项用来指定支持max connections的锁文件,默认值是/var/run/rsyncd.lock
log file 此选项指定了rsync的日志输出文件路径
[jtmodel] 表示定义一个模块的开始,jtmodel就是对应的模块名称
path 此选项用来指定需要备份的文件或者目录,是必须设置的项。这里指定的目录为/usr/svn/backup
ignore errors 表示可以忽略一些无关的I/O错误
read only 设置为no表示客户端可以上传文件,设置为yes表示只读
write only 设置为no表示客户端可以下载文件,设置为yes表示不能下载
hosts allow 设置可以连接rsync服务器的主机,“*”表示允许连接任何主机
hosts deny 设置禁止连接rsync服务器的主机地址
list 此选项用于设定当客户请求可以使用的模块列表时,该模块是否被列出。默认值是true,如果需要建立隐藏的模块,可以设置为false
vauth users 此选项用来定义可以连接该模块的用户名,多个用户以空格或者逗号分隔开。需要注意的是,这里的用户和Linux系统用户没有任何关系。这里指定的用户是backup
secrets file 此选项用于指定一个包含“用户名:密码”格式的文件,用户名就是“auth users”选项定义的用户,密码可以随便指定,这里设定为jt123,只要和客户端的secrets file对应起来即可。只有在auth users被定义时,该文件才起作用,系统默认没有这个文件,自己手动创建一个即可。
被备份服务器(A) 一样安装
备份服务器(B)
添加定时任务
0 5 * * * rsync -vzrtopg --delete --progress root@10.90.16.5::rsync /mnt/rujian --password-file=/etc/server.password
备份指令中的各个参数的含义
-vzrtopg
v 是“–verbose”,即详细模式输出
z 表示“–compress”,即在传输时对备份的文件进行压缩处理
r 表示“–recursive”,也就是对子目录以递归模式处理
t 表示“–times”,用来保持文件时间信息
o 表示“–owner”,用来保持文件属主信息
p 表示“–perms”,用来保持文件权限
g 表示“–group”,用来保持文件的属组信息
“–delete”选项指定以rsync服务器端为基准进行数据进项同步,也就是要保持rsync服务器端目录与客户端目录的完全一致,在这里以A服务器为基准进行同步
“–progress”选项用于显示数据镜像同步的过程
“–exclude”选项用于排除不需要传输的文件类型
“backup@192.168.17.33::jtmodel”表示对服务器192.168.17.33中的jtmodel模块进行备份,也就是指定备份的模块。backup表示使用“backup”这个用户对该模块进行备份。
“/usr/svn/backup2”用于指定备份文件在客户端机器上的存放路径,也就是将备份的文件存放在备份机的/usr/svn/backup2目录下
“–password-file=/etc/server.password”用来指定客户机上存放密码文件的位置,这样在客户端执行同步命令时就无需输入交互密码。注意,这个密码文件的名称和位置可以随意指定,但是在客户端主机上必须存在此文件,文件的内容仅仅为备份用户的密码,这里指的是backup用户的密码
报错 解决办法
rsync: failed to connect to 10.10.10.10 (10.10.10.10): Connection refused(111)
rsync error: error in socket IO (code 10) at clientserver.c(128) [sender=3.1.1]
rsync没启动
rsync: --deamon: unknown option
rsync error: syntax or usage error (code 1) at main.c(1572) [client=3.1.1]
rsync password 文件不存在