rsync安装与配置

这篇具有很好参考价值的文章主要介绍了rsync安装与配置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、软件简介

rsync是Linux系统下的数据镜像备份工具,从软件的命名上就可以看出来了——remote sync。rsync支持大多数的类Unix系统,无论是Linux、Solaris还是BSD上都经过了良好的测试。它的特性如下:

1、可以镜像保存整个目录树和文件系统。

2、可以很容易做到保持原来文件的权限、时间、软硬链接等等。

3、无须特殊权限即可安装。

4、优化的流程,文件传输效率高。

5、可以使用rcp、ssh等方式来传输文件,当然也可以通过直接的socket连接。

本文介绍了如何使用rsync服务从Linux到Windows和linux进行远程备份

二、安装软件

rysnc的主页地址为:http://rsync.samba.org/,可以从这里下载rsync的安装软件。

编译安装

rsync的编译安装非常简单,只需要以下简单的几步(在两台服务器中都要安装):

$ tar xvf rsync-2.6.3.tgz

$ cd rsync-2.6.3

$ ./configure

$ make

$ make install

//如果是已安装了RPM版的Rsync,并且要安装新版的Rsync,需要先删除Rsync

#rpm -e rsync

(Redhat会有一个包依赖rsync,可以使用rpm -e rsync --nodeps卸载)

另外,RPM版的rsync带了一个服务端的启动脚本,/etc/xinetd.d/rsync可以保留

但是需要注意的是必须在主服务器和同步服务器上都安装rsync,其中主服务器上是以服务器模式运行rsync,而同步上则以客户端方式运行rsync。这样在主服务器上运行rsyn守护进程,在同步上用crond定时运行客户程序来同步主服务器上需要同步的内容。

三、配置rsync服务器端

rsync服务器的配置文件为/etc/rsyncd.conf,其控制认证、访问、日志记录等等。该文件是由一个或多个模块结构组成。一个模块定义以方括弧中的模块名开始,直到下一个模块定义开始或者文件结束,模块中包含格式为name=value的参数定义。每个模块其实就对应需要备份的一个目录树,比方说在我们的实例环境中,有三个目录树需要备份:/www/和/mirror/file0/和/mirror/file1/目录,那么就需要在配置文件中定义三个模块,分别对应三个目录树。配置文件是行为单位的,也就是每个新行都表示一个新的注释、模块定义或者参数赋值。

1 。配置rsync server

vi /etc/xinetd.d/rsync

将disable=yes改为no

service rsync

{

disable = yes

socket_type = stream

wait = no

user = root

server = /usr/bin/rsync

server_args = --daemon

log_on_failure += USERID

}

确保etc/servicesrsync端口号正确

[root@test etc]# vim /etc/services

rsync 873/tcp # rsync

rsync 873/udp # rsync

配置rsync密码文件/home/rsync.ps(名字随便写,只要和配置文件里的一致即可),格式(一行一个用户)

[root@test etc]# vi /home/rsync.ps

scihoo:scihoo

配置rsync密码文件权限

[root@test home]# chown root.root rsync.ps

[root@test home]# chmod 600 rsync.ps

启动配置

[root@test home]# /etc/init.d/xinetd restart

如果xinetd没有的话,需要安装一下

[root@test home]# yum -y install xinetd

RSYNC服务端启动的几种方法

启动rsync服务端(独立启动)

[root@test home]# /usr/bin/rsync --daemon

加入rc.local,可以修改使系统启动时把rsync --daemon加载进去。

[root@test home]# vi /etc/rc.local

/usr/local/rsync –daemon #加入一行

重新载入rsync配置

[root@test home]# /etc/init.d/xinetd reload

检查rsync是否启动

[root@test home]# lsof -i :873

COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME

xinetd 4396 root 5u IPv4 633387 TCP *:rsync (LISTEN) ==========================================================

例子:

手动创建rsync的配置文件vi /etc/rsyncd.conf(前面以#开头的行或注释可以不用写入配置文件中)

uid = nobody # 备份以什么身份进行,用户ID

gid = nobody # 备份以什么身份进行,组ID

#注意这个用户ID和组ID,如果要方便的话,可以设置成root,这样rsync几乎就可

#以读取任何文件和目录了,但是也带来安全隐患。建议设置成只能读取你要备份的目录和文件即可。

use chroot = no

max connections = 0  #最大连接数,0代表没有限制

#port = 873          #默认端口873

pid file = /var/log/rsync/rsyncd.pid   #运行进程的ID写到哪里

#lock file = /var/log/rsync/rsync.lock

log file = /var/log/rsync/rsyncd.log  #日志记录文件

motd file = /var/log/rsync/rsyncd.motd  #欢迎消息

strict modes =yes         #是否检查口令文件的权限

[attachment]           # 指定认证的备份模块名

path = /www/htdocs/pub/attachment/   # 需要备份的目录

comment = BACKUP attachment           # 注释

ignore errors              # 忽略一些无关的IO错误

read only = false          # 设置为非只读,即可以传至服务器的相应目录。

list = false                # 不允许列文件

#exclude = test/ test.php      #设置不同步的目录或文件用空格隔开
#hosts allow = 210.51.0.80     #允许连接服务器的主机IP地址,如果多个ip则用空格隔开

#hosts deny = 0.0.0.0/0.0.0.0         #禁止连接服务器的主机IP地址,也可为*,表示所有。

auth users = msyn                     # 认证的用户名,如果没有这行,则表明是匿名

secrets file = /etc/rsyncd.scrt      # 认证文件名,用来存放密码

[98htdocs]

uid = nobody

gid = nobody

path = /www/htdocs/

#ignore errors

read only = true   

list = true

#hosts allow = 210.51.0.98

#hosts deny = 202.108.211.38

#hosts deny = 0.0.0.0/0.0.0.0

auth users = msyn,myname2

secrets file = /etc/rsyncd.scrt

==========================================================

这里分别定义了[attachment]、[98htdocs],分别对应于二个需要备份的目树。二个模块授权的备份用户分别为msyn,msyn,98syn,用户信息保存在文件/etc/rsyncd.scrt,其内容如下:

[root@www /etc]# cat /etc/rsyncd.scrt

www:xxxxxxxxx

注意:该文件只能是root用户可读写的,注意,出于安全目的,这个文件的属性必需是只有属主可读,否则rsync将拒绝运行。

我们可以设置它的属性为600:

[root@www /etc]# chmod 600 /etc/rsyncd.scrt

这些文件配置完毕以后,就需要在主服务器上启动rsyncd服务:

[root@www /etc]# /usr/local/bin/rsync --daemon

执行完毕上面的命令后,rsync即可启动。rsync默认服务端口为873,服务器在该端口接收客户的匿名或者认证方式的备份请求。

四、配置客户端

1、配置密码文件 (注:为了安全,设定密码档案的属性为:600。rsync.scrt的密码一定要和Rsync Server密码设定案里的密码一样)

[root@aj1 home]# vi /etc/rsync.scrt

123456

[root@aj1 home]# chown root.root /etc/rsync.scrt   # 注意必须给权限

[root@aj1 home]# chmod 600  /etc/rsync.scrt    # 必须修改权限

2. linux下执行rsync客户端命令

下一步就要运行rsync客户端的启动命令了:

[backup@backup /]#/usr/bin/rsync -vzrltogp --progress --delete user@x.x.x.168::attachment

/usr/local/apache/htdocs/pub/html/ --password-file=/etc/rsync.scrt

上面这个命令行中-vzrtopg代表的意思是:

-v表示verbose(详细)

-z表示zip(压缩)

-r表示recursive(递归目录)

-topg是保持文件原有属性如o=owner(属主)、t=times(时间)、p=perms(权限)、g=group(组)的参数

-H表示保持硬连接

-l:保留软链结

-u:表示只更新源文件比目标时间新的文件

--progress是指显示出详细的进度情况

--delete是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致。

user@x.x.x.168::attachment 是表示对服务器x.x.x.168中的attachment模块进行备份,登录帐号是user

--password-file = /etc/rsync.scrt来指定密码文件,这里需要注意的是这份密码文件权限属性要设得只有属主可读(权限为600),属主为正在运行此命令的用户。

-a:(-a, --archive equivalent to -rlptgoD)以archive模式操作,复制目录、符号连接在这里面

==========================================================================

另外,可以创建一个脚本运行这个命令,并记录日志

  # cat /usr/local/bin/rsync.sh

  #!/bin/bash

  DATE=`date +%w`

rsync -avzH --progress --delete inburst@192.168.168.52::inburst /home/quack/backup/$DATE --password-file=/etc/rsync.pass > /var/log/rsync.$DATE

修改/etc/crontab做好定时更新(配置文件 /etc/crontab)

[root@aj1 home]# crontab -e

15 4 * * 6 root rsync.sh

[root@aj1 home]# crontab -l    //查看所有自定义任务

[root@aj1 home]# /etc/init.d/crond restart    //重启动任务计划 crontab

Crontab文件的格式:

第1列分钟1~59

第2列小时1~23(0表示子夜)

第3列日1~31

第4列月1~12

第5列星期0~6(0表示星期天)

========================================================================

rsync for windows同步设置方法

配置环境,windows server 2003_32位系统

一、windowswindows同步

1.准备两台机器:

server-----192.168.0.201

client-----192.168.0.202

--------------------------------------------------------------------------------------------------------------

---------------

2.下载windows版的rsync工具

cwRsync_2.0.10_Installer.zip

cwRsync_Server_2.0.10_Installer.zip

--------------------------------------------------------------------------------------------------------------

---------------

3.安装与配置

SERVER

(1)安装cwRsync_Server_2.0.10_Installer.zip

在开始程序中打开start a unix bash shell程序:

进入一个类似cmd的终端,输入如下命令:

/bin/activate-user.sh

输入l

输入administrator

后面全按回来结束

--------------------------------------------------------------------------------------------------------------

---------------

(2)启动opensshd

打开控制面板-->管理工具-->服务

找到一个opensshd的服务,启动它

--------------------------------------------------------------------------------------------------------------

---------------

(3)配置rsyncd.conf配置文件

编辑C:\Program Files\cwRsyncServer\rsyncd.conf,内容如下:

use chroot = false

strict modes = false

hosts allow = *

log file = rsyncd.log

pid file = rsyncd.pid

# Module definitions

# Remember cygwin naming conventions : c:\work becomes /cygwin/c/work

[month201001]

path = /cygdrive/E/lpxx/2010/1

read only = false

transfer logging = yes

--------------------------------------------------------------------------------------------------------------

---------------

(4)启动rsync服务

打开控制面板-->管理工具-->服务

找到一个RsyncServer的服务,启动它

到此server端配置结束,接下来配置client端。

CLIENT

(1)安装client端软件包:cwRsync_2.0.10_Installer.zip

(2)打开cmd,执行如下操作,测试服务端是否正常启动服务了:

cd C:\Program Files\cwRsync\bin

telnet 192.168.0.201 22

telnet 192.168.0.201 873

若上述测试成功,此时可执行同步计划:

(5)客户端配置文件目录 C:\Program Files\cwRsync\2handdb-bak.bak

@ECHO OFF

SETLOCAL

SET CWRSYNCHOME=C:\PROGRAM FILES\CWRSYNC

PDF created with pdfFactory Pro trial version www.pdffactory.com

SET CYGWIN=nontsec

SET HOME=%HOMEDRIVE%%HOMEPATH%

SET CWOLDPATH=%PATH%

SET PATH=%CWRSYNCHOME%\BIN;%PATH%

rsync 试用参数:

-h , --help 显示rsync求助资讯

--version 顯示rsync版本

-v , --verbose 复杂的输出信息

-q , --quiet 安静模式,几乎没有讯息产生, 常用在以cron执行rsync

-I, --ignore-times 通常rsync为了加快速度会忽略同样档案大小且同样,同样存取时间点的档案

可以通过此参数开关此快速检查.

--size-only rsync 只检查档案大小是否改变,不管时间存取点是否改变

通常用在mirror, 且对方时间不太正确时

-c, --checksum 在传送之前透过128bitmd4检查码来检查所有要传送的档案(会托满速度);

-a, --archive archive mode 权限保存模式,相当于 -rlptgoD 参数.

很快速的保存几乎所有的权限设定,除了硬式连接(透过-H设定).

-r, --recursive 复制所有下面的资料(透过)

-R, --relative 使用相对路径

: rsync foo/bar/foo.c remote:/tmp/ 在远端产生/tmp/foo.c档案

rsync -R foo/bar/foo.c remote:/tmp/ 在远端产生/tmp/foo/bar/foo.c 档案

-R, --relative 不使用相对路径

-b, --backup 目的地端先前已经存在的档案在传输或删除前会被备份

--backup-dir=DIR 设定备份的资料夹

--suffix=SUFFIX 指定备份的档案名称字尾形式(预设为~)

-K, --keep-dirlinks 接收方将连接到资料夹的档案视为资料夹处理

-l, --links 复制所有的连接

-H, --hard-links 保留硬式连结

-p, --perms 保留档案权限 # p

-o, --owner 保留档案所有者(root only)

-g, --group 保留档案群组

-D, --devices 保留device资讯(root only)

-t, --times 保留时间点

-n, --dry-run 不实际执行传送__________, 只显示将会有的传输动作

-S, --sparse 尝试去处理稀疏的档案, 让这些档案在目的端占去较少的磁碟空间

-W, --whole-file 复制所有的档案, 不额外作检查

--no-whole-file 关闭 --whole-file 参数

-x, --one-file-system 不要跨越档案系统分界(只在一个档案系统处理)

-B, --block-size=SIZE 强制透过rsync程式去比对修复block-sizeforce

-e --rsh=COMMAND 定义所试用的remote shell

--rsync-path=PATH 定义rsync在远端机器存放资料的路径

--existing 只对比更新目的端已经存在的档案

--ignore-existing 忽略目的断已经存在的档案(也就是不更新)

--delete 删除传送断已经不存在,而目的端存在的档案

--delete-excluded 除了把传送端已经不存在, 而目的端存在的档案删除之外, 也删除 --exclude 参数所包含的档案

--delete-after rsync预设会在档案传送前进行相关删除动作确保接收端有足够的档案空间,

单可以透过 --delete-after 让删除动作在档案传送后在进行删除

--ignore-errors 忽略任何错误即使是I/O error 也进行 --delete 删除动作

--max-delete=NUM 定义rsync不要删除超过NUM个档案

--partial rsync若遇到传输过程中断时, 会把那些已经传输的档案删除.

在某种状况下保留那些部分传送的档案是令人高兴的;

你可以透过 --partial 参数达到这个目的.

--partial-dir=DIR --partial 参数启动时, 你还是可以定义rsync把那些部分传送的档案

写入定义的资料夹, 而非直接写入目的端,需要注意的是,

此资料夹不应该被其他试用者可以写入.(:/tmp)

--force 当目的端资料夹被传送端非资料夹名称覆盖时, 强制rsync删除资料夹, 即使该资料夹不是空的.

--numeric-ids 不将传送端档案的uidgid, 与目的端的使用者/群组进行配对,

若传送端并没有uidgid的对应名称(:原帐号群组被删除的遗留档案),

或目的端没有相对应的帐号/群组, 保留数字型式的uid/gid

--timeout=TIMEOUT 设定I/O 超时的时间(). 超过这个秒数而没有资料传送, rsync将会结束. 预设为0,也就是没有定义超时

时间

-T, --temp-dir=DIR 定义rsync在接收端产生暂时性的复制档案时使用资料夹暂存, 预设时直接在接收端资料夹直接产生暂存

档案

--compare-dest=DIR 定义rsync在目的端建立资料夹来比对传送过来的档案.

--link-dest=DIR --compare-dest 相同,但同时会针对无法改变的档案建立硬式连结.

PDF created with pdfFactory Pro trial version www.pdffactory.com

-z, --compress 压缩模式, 当资料在传送到目的端进行档案压缩.

-P -P参数和 --partial --progress 相同.只是为了把参数简单化.

-C, --cvs-exclude 排除那些通常不希望传送的档案, 定义的方式与CVS传送相同:

RCS SCCS CVS CVS.adm RCSLOG cvslog.* tags TAGS .make.state

.nse_depinfo *~ #* .#* ,* _$* *$ *.old *.bak *.BAK *.orig *.rej

.del-* *.a *.olb *.o *.obj *.so *.exe *.Z *.elc *.ln core .svn/

符合以上条件的都会被忽略不传送.

--exclude=PATTER 符合PATTERN(规则表示式)样式的档案不仅行传送

--exclude-from=FILE --exclude 参数相同, 不过是把不进行传送的档案事先写入某一档案.

执行时, 透过此参数让rsync读取.

(; #开头的行列或者空白会被rsync忽略)

--include=PATTERN 定义rsync不要排除符合pattern样式的档案

--include-from=FILE --include参数相同,只不过把要包含的档案写到某一档案.

--files-from=FILE 把要传送的档案名称都精确的写入某一档案, rsync读取.

: rsync -a --files-from=/tmp/foo /usr remote:/backup

-0 --from0 定义档案所要读取的档案时null字元结尾.

--version 现四版本信息.

--daemon 定义rsyncdaemon型态执行

--no-detach 当以daemon形态执行时,不要进行分裂且变成背景程序.

--address=ADDRESS 定义所要连接(bind)ip位置或者是host名称(daemon限定)

--config=FILE 定义所要读取的设定档rsyncd.conf位置(daemon限定)

预设值为 /usr/local/etc/rsyncd.conf

--port=PORT 定义rsyncd(daemon)要旨行的port(预设为tcp 873)

--blocking-io 使用blocking I/O连结远端的shell, rsh, remsh

--no-blocking-io 使用non-blocking连结远端的shell, ssh(预设值)

--stats 显示档案传送时的资讯状态

--progress 显示传送的进度.(给档案传送时,怕无聊的人用的..)

--log-format=FORMAT 定义log的格式(rsyncd.conf设定)

--password-file=FILE 从档案读取与远端rsync伺服务连结的密码

--bwlimit=KBPS 定义传输频宽的大小(KBytes/)

--write-batch=FILE 把记录资料写入一个档案(给其他相同环境且相同需求的机器试用)

--read-batch=FILE 透过读取记录档案来进行传输.(档案由 --write-batch 参数产生)

--checksum-seed=NUM 定义档案 checksum-seed 的大小(byte)

-4 --ipv4 使用IPv4协定文章来源地址https://www.toymoban.com/news/detail-758326.html

到了这里,关于rsync安装与配置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Windows系统服务器配置SSH服务

    打开【设置】-【应用】 选择【管理可选功能】 点击【添加功能】 选择【OpenSSH 服务端】,切记不是【OpenSSH 客户端】,然后点击下载即可 下载完成后会自动安装,安装成功会出现在列表中 找到命令提示符,以管理员身份运行 执行“net start sshd”命令,启动SSH服务 按下【w

    2024年02月13日
    浏览(39)
  • ubuntu 使用 rsync 的 SSH 方式同步备份远程WEB服务器

    ubuntu 20.04 自带 rsync ,对于 WEB 服务器这种更新频率不高的情况,直接使用定时同步复制远程服务器的方法,比较直接和简单! $ rsync --version rsync version 3.1.3 protocol version 31 参考: Ubuntu20.04中的rsync命令 本次主要使用 SSH 方式来完成,抄录一下参考文章 远程 ubuntu 2004 server 192.

    2024年02月15日
    浏览(36)
  • Linux系列:开发环境搭建:ubuntu图形界面安装samba服务器、SSH使用、mount -t cifs 挂载windows共享目录方法与问题解决

    samba一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。 通常linux开发环境要和windows平台进行文件交互,使用samba进行文件夹共享,这样会给开发带来很大的便利性,samba安装很简单,下面介绍一下在ubunt

    2024年02月21日
    浏览(68)
  • Linux服务器与群晖rsync同步,linux服务器通过rsync的方式备份数据到群晖

    准备需要备份linux服务器的配置,安装rsync即可 1.登录群晖服务器,点击套件中心  2.点击红色框框,跳转到套件界面 3.点击Active Backup for Business 4.点击文件服务器-添加服务器-选择rsync服务器-下一步 5.填写远程服务器信息 6.在群晖系统上创建备份任务 打开群晖的Active Backup fo

    2024年02月10日
    浏览(55)
  • 【全面解析】Windows 如何使用 SSH 密钥远程连接 Linux 服务器

    创建密钥 创建 linux 服务器端的终端中执行命令 ssh-keygen ,之后一直按Enter即可,这样会在将在 ~/.ssh/ 路径下生成公钥(id_rsa.pub)和私钥(id_rsa) 注意:也可以在 windows 端生成密钥,只需要保证公钥在服务器端,私钥在本地端即可。 安装 在服务器端 ~/.ssh/ 路径下执行以下命令,在

    2024年02月16日
    浏览(59)
  • Windows的黑窗口(cmd)连接操作Linux服务器 SSH

    ssh -V 出现以上内容说明已经安装了ssh。 ssh root@10.154.63.234 这样就连接成功了。 接下来就可以使用命令操作服务器。

    2024年02月16日
    浏览(40)
  • Windows 系统下:SSH 远程连接 Linux 服务器的完整指南

    以下是使用 Windows 系统的 SSH 远程连接 Linux 服务器的详细操作步骤,(我们以 Ubuntu 和CentOS 为例) 1. 确保 Linux 服务器已启用 SSH 首先,确保您的 Linux 服务器上已经安装并运行了 SSH 服务。对于大多数 Linux 发行版, OpenSSH 是默认的 SSH 服务器。您可以使用以下命令来安装它:  

    2024年02月08日
    浏览(73)
  • Windows下使用SSH密钥实现免密登陆Linux服务器

    工具: win10、WinSCP 生成ssh密钥: 打开终端,使账号密码登录,输入命令 会提示密钥存放路径,一般存放在默认路径,直接回车即可,中间会提示输入密码,这里需要注意,如果设置密码,则每次登陆的时候需要输入此密码来登陆,如果不输入密码的话可以直接使用密钥登陆

    2023年04月14日
    浏览(49)
  • Windows SSH远程连接Linux服务器 - 无公网IP内网穿透

    转发自CSDN远程穿透的文章:【vscode远程开发】使用SSH远程连接服务器 「内网穿透」 远程连接服务器工具有很多,比如XShell、putty等,可以通过ssh来远程连接服务器,但这用于写代码并不方便,可能需要现在本地写好代码后再将源代码传送到服务器运行、服务器上的图片也无

    2024年02月04日
    浏览(56)
  • 安装Ubuntu服务器、配置网络、并安装ssh进行连接

    详见: U盘安装Ubuntu系统详细教程 详见:https://blog.csdn.net/davidhzq/article/details/102991577         最重要的就是下面这样图要配置好, 至于子网掩码、网关、DNS等,需要打电话去获取。也就是谁给你的ip,你就打电话向他问这些相关信息。 参考链接: https://zhuanlan.zhihu.com/p/14697

    2024年02月12日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包