Linux 服务器 文件备份

因为公司服务要做迁移 ,对公司服务器之前的结构进行梳理。 (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 文件不存在

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值