zoukankan      html  css  js  c++  java
  • rsync 服务配置_rsync命令使用方法

    rsync介绍

    rsync用来定时备份服务器中的文件或者目录,有三种工作模式,本地复制,使用系统用户认证,守护进程方式,开源高效。同步工具,把一台机器上的文件同步都另一台机器 。默认使用873端口

    选项

    -a           #归档模式传输, 等于-tropgDl
    -v           #详细模式输出, 打印速率, 文件数量等
    -z           #传输时进行压缩以提高效率
    --delete     #让目标目录和源目录数据保持一致
    --password-file=xxx #使用密码文件
    
    ------------------- -a 包含 ------------------
    -r           #递归传输目录及子目录,即目录下得所有目录都同样传输。
    -t           #保持文件时间信息
    -o           #保持文件属主信息
    -p           #保持文件权限
    -g           #保持文件属组信息
    -l           #保留软连接
    -D           #保持设备文件信息
    ----------------------------------------------
    
    -L           #保留软连接指向的目标文件
    -e           #使用的信道协议,指定替代rsh的shell程序
    --exclude=PATTERN   #指定排除不需要传输的文件模式
    --exclude-from=file #文件名所在的目录文件
    $RSYNC_PASSWORD 		# 用来存放rsync密码的变量,使用之后可以不使用--password-file=xxx
    
    # 远程传送 复制
    scp 源文件 目标
    
    上传到另一台机器 
    scp yum.log root@10.0.0.41:/root/
    
    从另一台机器下载
    scp root@10.0.0.41:/root/yum.log /root
    
    -r 传送目录
    推 scp -r /etc root@10.0.0.41:/root/
    拉 scp -r root@10.0.0.41:/root/ /etc 
    
    http	80
    https	443
    rsync	873
    ftp		21
    ssh		22
    
    C/S	架构
    client/server
    

    小提示:利用rsync还可以实现删除文件和目录的功能,这又相当于rm命令,一个rsync相当于scp、cp、rm,但是还优于他们的每一个命令。

    备份类型

    增量备份

    ​ 基于全部备份,当客户端A中有file1、file2、file3三个文件,服务器中有已经备份的file1,那么这个时候只会备份,file2和file3,在一次全备份或上一次增量备份后,以后每次的备份只需备份与前一次相比增加或者被修改的文件。

    全部备份

    ​ 会把客户端备份的内容全部备份到,服务器中。

    差异备份

    ​ 假设我们在第一天也进行一次完全备份。第二天差异备份时,会备份第二天和第一天之间的差异数据,而第二天的备份数据是完全备份加第一次差异备份的数据。

    rsync的使用方法

    # 推
    # 没有/的情况是备份整个目录
    rsync -avz /etc root@10.0.0.41:/backup
    
    # 有/的情况是备份目录里面的内容
    rsync -avz /etc/ root@10.0.0.41:/backup
    
    # 拉
    rsync -avz root@10.0.0.41:/etc/sysconfig/network-scripts/ifcfg-eth* /tmp
    

    rsync的传输模式

    本地传输模式

    # 语法
    rsync [OPTION...] SRC... [DEST]
    
    # 复制文件
    rsync /tmp/ifcfg-eth1 /opt/
    
    # 拷贝目录
    rsync -a /etc /opt/
    
    

    远程传输模式

    Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
    拉: rsync [选项] 用户名@主机ip:路径 本地路径
    [root@web01 /tmp]# rsync -avz root@10.0.0.41:/etc/hostname ./
    
    Push: rsync [OPTION...] SRC... [USER@]HOST:DEST
    推: rsync [选项] 本地文件或者目录 用户名@主机ip:路径
    

    这种模式借助的是ssh协议的22端口,当默认端口更改之后需要使用选项去指定。

    守护进程模式

    Access via rsync daemon:
             Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
    		# 拉: rsync [-avz] zls_bak@10.0.0.41::[模块] 源文件
             Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
             # 推: rsync [-avz] 源文件 zls_bak@10.0.0.41::[模块]
    

    环境准备

    主机名 wanIP lanIP 角色
    web01 10.0.0.7 172.16.1.7 客户端
    backup 10.0.0.41 172.16.1.41 服务端

    服务端 : 备份的文件放在哪台主机的磁盘谁就是服务端。

    1、安装服务端

    yum -y install rsync
    

    2、修改配置文件通常以.conf .cfg .cnf 结尾的

    [root@web01 /tmp]# vi /etc/rsyncd.conf
    uid = rsync				# 进程启动的用户
    gid = rsync				# 指定进程启动的gid
    port = 873				# rsync服务的端口
    fake super = yes		#  无需让rsync以root的身份运行,允许接收文件的完整属性。
    use chroot = no			# 禁锢指定的目录path
    max connections = 200	# 最大连接数
    timeout = 600			# 超时时间单位s
    ignore errors			# 忽略错误
    read only = false		# 不只读,可读写
    list = false			# 不允许别人查看模块名
    auth users = rsync_backup    # 传输文件的用户
    secrets file = /etc/rsync.passwd		# 传输用户的密码文件
    log file = /var/log/rsyncd.log			# 日志文件
    #####################################
    [backup]       # 模块名
    comment = welcome to oldboyedu backup!   # 注释
    path = /backup     # 备份的目录
    
    

    3、根据配置文件内容创建需要的环境

    useradd rsync -s /sbin/nologin -M
    mkdir /backup
    chown -R rsync.rsync /backup/
    
    [root@web01 /tmp]# vi /etc/rsync.passwd
    rsync_backup:123
    
    echo 'rsync_backup:123' > /etc/rsync.passwd
    chmod 600 /etc/rsync.passwd				# 密码文件必须是这个权限
    
    

    4、启动服务加入开机自启

    systemctl start rsyncd
    systemctl enable rsyncd
    netstat -lntup |grep 873
    ps -ef | grep rsync
    

    5、安装客户端

    yum -y install rsync
    # 客户端不用修改配置文件
    

    6、配置客户端密码文件

    echo '123' > /etc/rsync.passwd
    chmod 600 /etc/rsync.passwd
    

    5、使用

    推: rsync -avz /etc/passwd rsync_backup@10.0.0.41::backup --password-file=/etc/rsync.passwd
    

    脚本使用rsync密码变量

    export RSYNC_PASSWORD=123
    rsync -avz ./ rsync_backup@10.0.0.41::backup
    

    rsync无差异同步

    --delete

    保证服务器上的内容和本地的内容是一致的,如果服务器上的内容多了会被删除,使用很危险 。

    [root@web01 ~]# rsync -avz ./ --delete rsync_backup@10.0.0.41::backup --password-file=/etc/rsync.passwd
    

    rsync限速

    --bwlimt

    限制对磁盘的I/O

    [root@web01 ~]# rsync -avz ./ --bwlimit=1 rsync_backup@10.0.0.41::backup --password-file=/etc/rsync.passwd
    
  • 相关阅读:
    函数表达式
    BOM
    让超出容器高度的内容滚动显示但不出现滚动条
    插件书写示例
    php中redis的安装
    日常工作bug总结
    pip freeze requirements.txt命令迁移模块
    Django18-中间件和cache实现限制用户访问频率
    Django17-文件上传下载
    Django16-cache缓存
  • 原文地址:https://www.cnblogs.com/gshelldon/p/13287756.html
Copyright © 2011-2022 走看看