rsync文件同步案例

合集下载

巧用Rsync成功实现多台Windows工作电脑资料同步

巧用Rsync成功实现多台Windows工作电脑资料同步

巧用Rsync成功实现多台Windows工作电脑资料同步本文将介绍跟距离如何用Rsync windows 版来帮我们好好“改变一下工作,生活。

”你可以选择2种配置方法!1,一台台式电脑,一台笔记本。

2,一台服务器,一台工作站(台式电脑),一台笔记本。

其实2种配置,无非都是要符合Rsync结构里边”服务端”跟”客户端”的资料传输方式。

第一种配置,可以把台式机安装Rsync服务端,而笔记本运行客户端进行资料更新同步。

第二种配置,可以在服务器上安装Rsync服务端,另外的工作站跟笔记本使用客户端进行资料更新。

任何一种方法实现起来都挺好.但有一点要声明.我还没试过在装有VISTA操作系统的台式机上充当Rsync的服务端. 客户端就很成功.另外再说一说, 我个人现在用的是第二种配置。

如果有哪位朋友喜欢,而且想应用在生成环境中,例如公司或企业的重要资料备份以及同步. 这样我还是推荐使用专门的服务器+专门的服务器操作系统. 至少是Windows2003server 或者Linux。

如果你有条件有技术的话,Linux 是个最专业的选择哦。

好了,现在入正题。

你要准备的软件有:最新版Rsync for windows服务端:cwRsync_Server_2.1.5_Installer.zip客户端:cwRsync_2.1.5_Installer.zip还有这个是服务端的最新核心升级包:cwRsync_2.1.5_update_100.zipRsync 的server端跟客户端都是一个Windows的exe的安装文件。

选好安装路径,装就是了。

先在服务器或者(台式机)上安装Rsync Server 服务端。

我把安装路径设在了服务器(台式机)的D:/Program Files/cwRsyncServerServer 端会顺便添加一个SvcwRsync用户,用户密码会在安装过程中自动生成并且告诉你.这个密码难度也挺强的一般是没必要去修改。

Rsync(远程同步):linux中Rsync命令的实际示例

Rsync(远程同步):linux中Rsync命令的实际示例

Rsync(远程同步):linux中Rsync命令的实际⽰例rsync的(远程同步)为在Linux / Unix系统局部拷贝和同步⽂件和⽬录远程以及⼀个最常⽤的命令。

随着rsync命令的帮助,您可以复制并在⽬录中远程和本地同步数据,在磁盘和⽹络,进⾏数据备份和两台Linux机器之间的镜像。

Rsync本地和远程⽂件同步本⽂介绍rsync命令的10个基本和⾼级的⽤法在基于Linux的机器远程和本地传输⽂件。

你并不需要以root⽤户运⾏rsync命令。

Rsync命令的⼀些优点和功能1. 它有效地将⽂件复制到远程系统或从远程系统同步。

2. ⽀持复制链接,设备,所有者,组和权限。

3. 这是⽐快SCP(安全复制),因为rsync使⽤远程更新协议,允许转让只是两套⽂件之间的差异。

第⼀次,它从源到⽬标复制⽂件或⽬录的整个内容,但从下⼀次,它只将已更改的块和字节复制到⽬标。

4. rsync的消耗更少的带宽,因为它使⽤压缩和解压缩⽅法在发送和接收数据两端。

rsync命令的基本语法# rsync options source destination与rsync命令⼀起使⽤的⼀些常见选项1. -v:详细2. -r:将数据递归(但不保存时间戳和权限,同时传输数据3. -a:归档模式下,归档模式允许递归地拷贝⽂件,同时也保留了符号链接,⽂件权限,⽤户组所有权和时间戳4. -z:压缩⽂件中的数据5. -h:在⼈类可读的格式⼈类可读,输出数字推荐阅读:在Linux机器上安装rsync我们可以⽤下⾯的命令的帮助安装的rsync包。

# yum install rsync (On Red Hat based systems)# apt-get install rsync (On Debian based systems)1.本地复制/同步⽂件和⽬录在本地计算机上复制/同步⽂件以下命令将同步本地计算机上的单个⽂件从⼀个位置到另⼀个位置。

rsync文件备份同步

rsync文件备份同步

rsync⽂件备份同步1、rsync有两种认证协议:ssh认证协议 rsync server端不需要启动daemon进程,所以不⽤配置/etc/rsyncd.conf,只需要获取远程host的⽤户名密码 例: rsync -avz /src -e "ssh -p36000" root@192.168.198.175:/dest #修改了ssh 协议的端⼝,默认是22,-a ⽂件宿主变化,时间戳不变,-z:压缩数据传输rsync认证协议 rsync server端需要启动daemon进程,并设置对应的配置⽂件/etc/rsyncd.conf 例:rsync -av /src --port=36000 root@192.168.198.175::modual/dest2、/etc/rsyncd.conf 配置 log file = /var/log/rsyncd.log pid file = /var/run/rsyncd.pid lock file = /var/run/rsyncd.lock uid = root gid = root use chroot = no secrets file = /etc/rsync.secrits hosts allow = 192.168.0.0/22 0/24 [modual] #定义的模块,在rsync的命令中不⽤写绝对路径了 path = /disk2/pub/club comment= club pub auth users = club timeout = 600 read only = no list = no3、rsync.secrets 配置 cat /etc/rsync/rsync.secrets admin:root #⽤户名:⼝令 mark:passwdrsync在同步⽂件的同时,可以保持原来⽂件的权限、时间、软硬链接等附加信息,详情请参考:。

rsync 同步2台服务器文件的用法

rsync 同步2台服务器文件的用法

rsync 同步2台服务器文件的用法rsync是一个用于文件同步的工具,可以在两台服务器之间同步文件或目录。

要使用rsync同步两台服务器之间的文件,可以使用以下命令:```
rsync -avz user@source_server:/path/to/source_dir/
user@destination_server:/path/to/destination_dir
```
其中,-a表示以归档模式同步文件,保持文件的所有属性;-v表示以详细模式显示同步过程;-z表示使用压缩传输,以减少数据传输量。

user是登录服务器的用户名,source_server和
destination_server分别是源服务器和目标服务器的地址,
/path/to/source_dir和/path/to/destination_dir分别是源目录和目标目录的路径。

除了以上基本的用法外,rsync还有许多其他参数和选项可以根据具体需求进行选择,比如--delete参数可以在目标服务器上删除已经
不存在于源服务器的文件;--exclude参数可以排除特定的文件或目录;--progress参数可以显示同步进度等等。

需要注意的是,rsync需要在源服务器和目标服务器上都安装并配置好,通常需要使用ssh协议进行连接和传输。

总的来说,rsync是一个非常实用的文件同步工具,可以帮助用户方便快捷地在不同服务器之间同步文件,适用于各种不同的应用场景。

linux中rsync用法

linux中rsync用法

linux中rsync用法rsync是一个远程数据同步工具,可以在本地和远程之间复制和同步文件。

以下是一些常用的rsync用法示例:1. 本地文件复制:```bashrsync -av /path/to/source /path/to/destination```将/source目录下的文件复制到/destination目录中。

2. 本地文件同步:```bashrsync -av --delete /path/to/source /path/to/destination```将/destination目录与/source目录保持同步,并删除/destination中不存在于/source的文件。

3. 本地文件备份:```bashrsync -av --backup /path/to/source /path/to/backup```将/source目录中的文件备份到/backup目录中,如果/backup 目录中已存在同名文件,则将其重命名为“filename~”。

4. 远程文件复制:```bashrsync -avz -e ssh user@remote:/path/to/source/path/to/destination```将远程服务器上的/source目录下的文件复制到本地的/destination目录中。

5. 远程文件同步:```bashrsync -avz --delete -e ssh /path/to/sourceuser@remote:/path/to/destination```将本地的/source目录与远程服务器上的/destination目录保持同步,并删除/destination中不存在于本地/source的文件。

以上示例中的选项说明:- -a:归档模式,保留所有文件属性,包括权限、所有者等。

- -v:详细输出,显示复制的文件列表。

- -z:压缩传输数据,减小网络传输量。

使用rsync命令实现远程文件同步

使用rsync命令实现远程文件同步

使用rsync命令实现远程文件同步rsync是一种用于在本地和远程系统之间快速、安全、可靠地同步文件和目录的工具。

它可以通过SSH协议传输数据,并在传输过程中进行压缩和加密,使文件同步过程更高效和安全。

本文将介绍如何使用rsync命令实现远程文件同步。

1. 确保rsync已经安装在开始使用rsync命令之前,首先需要确保rsync已经在您的系统上安装并可用。

在大部分Linux系统上,rsync通常默认安装。

您可以通过在终端中运行以下命令来检查rsync是否已经存在:```rsync --version```如果显示了rsync的版本信息,则表示rsync已经安装成功。

否则,您需要先安装rsync。

2. 执行远程文件同步在使用rsync命令进行远程文件同步之前,您需要知道远程主机的IP地址、用户名和目录路径,以及您本地主机上的同步源文件或目录路径。

基本的rsync命令语法如下:```rsync [option] [source] [destination]```其中,[option]代表rsync的选项,[source]代表同步源文件或目录的路径,[destination]代表目标主机的IP地址和目录路径。

例如,要将本地主机上的`/home/user/file.txt`文件同步到远程主机上的`/remote/directory`目录下,可以使用以下命令:```rsync -az /home/user/file.txt username@remote_ip:/remote/directory```在该命令中,`-a`选项表示以归档模式进行同步,保留文件的权限和时间戳。

`-z`选项表示在传输过程中进行压缩,以提高传输效率。

`username`代表远程主机的用户名,`remote_ip`代表远程主机的IP地址。

3. 添加SSH密钥认证为了能够以安全的方式进行远程文件同步,推荐使用SSH密钥认证。

这样可以避免每次执行rsync命令时都需要输入密码。

Linux命令高级技巧使用rsync进行高效的文件同步

Linux命令高级技巧使用rsync进行高效的文件同步

Linux命令高级技巧使用rsync进行高效的文件同步在计算机领域,Linux操作系统是一款非常流行的开源操作系统。

它具有强大的命令行工具,其中一个非常实用的工具就是rsync命令。

rsync命令可以通过网络在两个目录之间实现文件的高效同步。

在本文中,我们将介绍rsync命令的高级技巧,以便更有效地进行文件同步。

一、基本用法rsync命令的基本用法非常简单,可以使用以下命令格式进行文件同步:rsync [选项] 源目标例如,要将本地目录/var/www/html同步到远程服务器的/var/www/html目录下,可以使用以下命令:rsync -avz /var/www/html/ user@remote:/var/www/html/在这个命令中,-a选项表示使用归档模式进行同步,保留文件的权限、所有者、时间戳等信息;-v选项表示显示同步过程中的详细信息;-z选项表示启用压缩,减少数据传输量。

用户需要将"user"替换为远程服务器的用户名,将"remote"替换为远程服务器的IP地址或域名。

二、增量同步在实际的文件同步过程中,通常只有部分文件发生变化。

使用rsync命令进行全量同步会浪费很多时间和网络带宽。

为了更高效地进行文件同步,可以使用rsync的增量同步功能。

增量同步指的是只同步发生变动的文件,而不是所有文件。

通过使用--delete选项删除目标目录中不存在于源目录的文件,我们可以达到增量同步的效果。

以下是一个实例命令:rsync -avz --delete /var/www/html/ user@remote:/var/www/html/在这个命令中,--delete选项表示删除目标目录中不存在于源目录的文件。

三、排除文件和目录有些文件和目录在进行文件同步时不需要同步,比如日志文件、临时文件等。

为了避免将这些不需要同步的文件传送到目标目录,可以使用--exclude选项。

实测通过rsync双机同步配置

实测通过rsync双机同步配置

Linux配置rsync服务端及2台机器配置文件同步(实测通过)环境 Centos6.2 系统机器2台:服务器192.168.191.140,客户机:192.168.191.1281.先关闭2台机器的防火墙: /etc/init.d/iptables stop2台机器安装rsync软件包: yum install rsync -y或者从原始网站下载:/ftp/rsync/[root@localhost bin]#./configure[root@localhost bin]#make[root@localhost bin]#make install2.服务器端操作rsync安装时没有提供一个配置文件模板,需要自己手动创建,名称为rsyncd.conf。

配置文件文件分为两部分,全局参数和模块参数。

A.服务器端机器新建文件:vi /etc/rsyncd.conf添加以下内容#[global]全局配置uid = rootgid = rootmax connections = 15transfer logging = truelog format = %h %o %f %l %blog file = /var/log/rsyncd.logpid file = /var/run/rsyncd.pidlock file = /var/run/rsyncd.lockslp refresh = 300#客户端连接模块配置[rsynczgp]path = /rsyncdircomment = zgprsyncread only = noauth users = rootsecrets file = /etc/rsync.ser.pass# rsynczgp 是客户机链接的模块名称,你可以配置多个模块链接到不同客户端#path 要把文件同步到服务端哪个目录上#/etc/rsync.ser.pass 客户机链接的账号密码B.创建服务端文件夹:mkdir /rsyncdirC.新建文件vi /etc/rsync.ser.pass添加以下内容,是客户机链接的账号密码格式:用户名:密码例如:root:zgp66dashunD.修改权限chmod 600 /etc/rsync.ser.pass(不修改客户端会报错:@ERROR: auth failed on module rsynczgprsync error: error starting client-server protocol (code 5) at main.c(1503) [sender=3.0.6])E.启动服务器端程序rsync --daemonF.查看服务器端是否启动成功lsof -i:873如下:[root@localhost etc]# lsof -i:873COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMErsync 25364 root 3u IPv4 55277 0t0 TCP *:rsync (LISTEN)rsync 25364 root 5u IPv6 55278 0t0 TCP *:rsync (LISTEN)至此,服务端配置完成。

Linux命令高级技巧使用rsync命令进行文件和同步

Linux命令高级技巧使用rsync命令进行文件和同步

Linux命令高级技巧使用rsync命令进行文件和同步在Linux系统中,有许多强大而实用的命令可以提高我们的工作效率和操作便利性。

其中一个非常实用的命令就是rsync命令,它可以用于文件和文件夹之间的同步和复制。

下面,我们将学习如何使用rsync 命令,以及一些高级技巧,从而更好地掌握这个命令。

一、rsync命令概述rsync命令是一个非常强大的文件传输工具,它可以在本地和远程主机之间进行文件同步和复制。

它的特点是速度快、安全可靠,而且可以方便地通过SSH或RSH等协议进行加密传输。

二、基本用法1. 本地文件复制如果我们要将一个文件复制到另一个目录下,可以使用以下命令:rsync -a source_file destination_file例如,如果要将/home/user1/file1.txt复制到/tmp目录下:rsync -a /home/user1/file1.txt /tmp2. 本地文件夹同步如果我们要将一个文件夹下的所有文件和子文件夹同步到另一个文件夹下,可以使用以下命令:rsync -a source_directory/ destination_directory/例如,如果要将/home/user1/folder1下的所有文件和子文件夹同步到/tmp目录下:rsync -a /home/user1/folder1/ /tmp/3. 远程文件复制如果我们要将本地文件复制到远程主机上,可以使用以下命令:rsync -a source_file remote_user@remote_host:destination_directory/例如,如果要将本地的/home/user1/file1.txt复制到远程主机的/tmp 目录下,远程主机的用户名为remote_user,IP地址为192.168.1.100:rsync-a/home/user1/****************************.1.100:/tmp/4. 远程文件夹同步如果我们要将本地文件夹同步到远程主机上,可以使用以下命令:rsync -a source_directory/remote_user@remote_host:destination_directory/例如,如果要将本地的/home/user1/folder1下的所有文件和子文件夹同步到远程主机的/tmp目录下,远程主机的用户名为remote_user,IP 地址为192.168.1.100:rsync-a/home/user1/folder1/*******************.1.100:/tmp/三、高级技巧1. 文件过滤有时候,我们不希望将某些文件或文件夹复制或同步到目标目录中。

利用rsync命令在Linux中进行加密的文件同步和备份

利用rsync命令在Linux中进行加密的文件同步和备份

利用rsync命令在Linux中进行加密的文件同步和备份在Linux系统中,文件同步和备份是非常重要的任务。

为了保护文件的安全性,我们可以使用rsync命令进行文件同步和备份,并结合加密技术,确保文件在传输和存储过程中的安全性。

1. 安装rsync命令rsync是一种优秀的文件同步工具,在大多数Linux发行版中都已经预装。

如果你的系统没有安装rsync命令,可以通过以下命令进行安装:```shellsudo apt-get install rsync```2. 生成密钥对为了加密文件在传输过程中的安全性,我们需要生成密钥对。

密钥对由公钥和私钥组成,公钥用于加密文件,私钥用于解密文件。

首先,在客户端上生成密钥对:```shellssh-keygen -t rsa```按照提示,选择保存密钥的位置和设置密码。

生成的密钥对默认保存在用户的家目录下的`.ssh`文件夹中。

然后,将公钥复制到服务器上:```shellssh-copy-id user@server_ip```输入服务器的密码后,公钥会被自动复制到服务器的`~/.ssh/authorized_keys`文件中。

3. 同步文件使用rsync命令同步文件非常简单,可以通过以下命令进行:```shellrsync [选项] 源目录目标目录```其中,`源目录`是需要同步的文件或目录的路径,`目标目录`是同步后文件或目录的保存位置。

为了加密文件的传输,我们可以使用`-e`选项指定加密传输协议。

常用的加密传输协议有SSH协议和SFTP协议。

以SSH协议为例,可以使用以下命令进行同步:```shellrsync -az -e "ssh -i /path/to/private_key" 源目录 user@server_ip:目标目录```其中,`-a`选项表示同步时保持原文件的权限和属性,`-z`选项表示传输时进行压缩,`-e`选项后的内容指定了使用SSH协议进行加密传输,并通过`-i`选项指定了私钥文件的位置。

Linux命令高级技巧使用rsync命令进行增量备份和同步

Linux命令高级技巧使用rsync命令进行增量备份和同步

Linux命令高级技巧使用rsync命令进行增量备份和同步Linux命令高级技巧:使用rsync命令进行增量备份和同步Linux系统是一种开源的操作系统,广泛应用于服务器和个人计算机等各个领域。

作为一个Linux用户,了解一些高级技巧和命令可以帮助你更高效地管理和维护系统。

在本文中,我们将介绍如何使用rsync 命令进行增量备份和同步,以保护你的数据安全。

一、什么是rsync命令rsync是一个强大的文件传输和备份工具,它可以在本地或者远程主机之间同步和传输文件。

与普通的拷贝命令(如cp)相比,rsync命令有以下几个优势:1.增量备份:rsync命令只会传输被更改过的文件或新增的文件,大大减少了传输的数据量和时间;2.传输速度快:rsync通过智能的算法,只传输两个文件之间的差异部分,提高了传输速度;3.支持远程备份:rsync可以通过SSH协议进行远程备份和同步。

二、rsync命令的基本用法rsync命令的基本用法如下:rsync [options] source destination其中,source表示源文件或者目录,destination表示目标路径。

1.同步本地文件夹要同步两个本地文件夹,可以使用如下命令:rsync -avh /path/to/source /path/to/destination其中,-a表示归档模式,保留文件的所有属性(如权限、时间等),-v表示显示详细信息,-h表示以人类可读的方式显示文件大小。

2.远程备份要通过rsync进行远程备份,需要在命令中加入远程主机的地址和用户名,如下所示:rsync -avh /path/to/source username@remote:/path/to/destination其中,username是远程主机的用户名,remote是远程主机的地址。

你还可以通过添加-p参数指定端口号,以及使用--exclude选项排除某些文件或文件夹。

Linux命令高级技巧使用rsync命令进行文件同步和备份的高级用法

Linux命令高级技巧使用rsync命令进行文件同步和备份的高级用法

Linux命令高级技巧使用rsync命令进行文件同步和备份的高级用法Linux命令高级技巧:使用rsync命令进行文件同步和备份的高级用法在Linux系统中,rsync(remote sync)命令是一个非常强大和常用的文件同步工具,可以在本地和远程之间高效地进行文件传输、同步和备份。

本文将介绍rsync命令的高级用法,帮助你更好地利用这一工具。

一、文件同步rsync命令最常用的功能就是文件同步,它可以将一个目录下的文件同步到另一个目录中。

下面是一个简单的例子:```rsync -avz /path/to/source/ /path/to/destination/```这条命令将会把source目录下的所有文件和子目录同步到destination目录中。

其中,选项`-a`表示递归地同步目录和子目录,并保持文件属性;选项`-v`表示显示同步过程中的详细信息;选项`-z`表示压缩传输数据,可以提高传输效率。

如果你只想同步某个类型的文件,可以使用`--include`和`--exclude`选项。

例如,只同步后缀为`.txt`的文件:```rsync -avz --include='*.txt' --exclude='*' /path/to/source//path/to/destination/```如果要从远程服务器同步文件,只需在源路径中使用SSH地址和远程目录即可:```*************************:/path/to/source//path/to/destination/```二、增量备份rsync命令还可以进行增量备份,也就是只备份源目录中更改过的或新增的文件,而不会重新备份整个目录。

这在大型文件备份中非常有用,可以节省时间和存储空间。

```rsync -avz --backup --backup-dir=/path/to/backup/ /path/to/source//path/to/destination/```在这个例子中,`--backup`选项指定备份模式,`--backup-dir`选项指定备份目录。

rsync文件同步案例

rsync文件同步案例

rsync⽂件同步案例rsync⽂件同步案例服务端:192.168.56.10客户端:192.168.56.11、192.168.56.12(实例2和3⽤到)sersync+rsync:192.168.56.13(实例2和3⽤到)准备2台红帽linux系统虚拟机,先将防⽕墙以及selinux关闭,安装xinetd服务# iptables -F# service iptables save# setenforce 0# yum –y install xinetd (需提前搭建好yum源,详细不做介绍)⼀、实例1(基础)1、编辑rsync配置⽂件[root@www ~]# cat /etc/rsyncd.confuid=nobodygid=nobodyuse chroot=yesaddress=192.168.56.11port 873log file=/var/log/rsyncd.logpid file=/var/run/rsyncd.pidhosts allow=192.168.56.0/24[webroot]path=/webrootcomment= web root share with rsyncread only=yesdont compress=*.gz *.bz2 *.tgz *.rar *.zip --不需要压缩的⽂件列表auth users=user01 user02secrets file=/etc/rsyncd_user.db2、编辑登录⽤户⽂件[root@www ~]# vim /etc/rsyncd_user.dbuser01:123# chmod 600 /etc/rsyncd_user.db --密码数据⽂件的权限必须600,否则服务启不来3、新建webroot,以及修改所属⽤户和组# mkdir /webroot# chown nobody.nobody /webroot/4、启动rsync# chkconfig rsync on#/etc/init.d/xinetd start5、查看进程以及端⼝是否已经起来6、测试1:(将服务端的⽂件同步到客户端)1)在服务端新建测试⽂件# touch /webroot/1.text1)在客户端新建测试⽂件夹# mkdir /rsync2)在客户端执⾏同步命令#***********************.56.10::webroot/rsync***********************.56.10::webroot/rsync等同于下⾯的命令rsync-avzrsync://**************.56.10/webroot /rsync/7、测试2:(将客户端的⽂件同步到服务端)1)在客户端执⾏[root@www~]#rsync-avz/rsync/rsync://**************.56.10/webroot由于rsyncd.conf中[webroot]为read only=yes,所以同步失败2)在服务端修改rsyncd.conf[root@www ~]# vim /etc/rsyncd.confuid=nobodygid=nobodyuse chroot=yesaddress=192.168.56.11port 873log file=/var/log/rsyncd.logpid file=/var/run/rsyncd.pidhosts allow=192.168.56.0/24[webroot]path=/webrootcomment= web root share with rsyncread only=yesdont compress=*.gz *.bz2 *.tgz *.rarauth users=user01 user02secrets file=/etc/rsyncd_user.db[webroot2]path=/webroot2comment= web2 root share with rsyncread only=nodont compress=*.gz *.bz2 *.tgz *.rarauth users=user01 user02secrets file=/etc/rsyncd_user.db3)新建webroot2,以及修改所属⽤户和组# mkdir /webroot2# chown nobody.nobody /webroot2/4)重启rsync# /etc/init.d/xinetd restart5)在客户端新建测试⽂件# touch /rsync/2.test6)在客户端执⾏同步命令[root@www~]#rsync-avz/rsync/rsync://**************.56.10/webroot28、不需要输⼊密码的同步⽅式(适合于脚本⽅式调⽤)1)在客户端编辑密码⽂件[root@www ~]# vim /root/passwd.txt123[root@www ~]# chmod 600 /root/passwd.txt2)在服务端新建测试⽂件[root@www ~]# touch /webroot/3.test3)测试⼆、实例2:(使⽤sersync整合rsync,实现WEB页⾯同步更新,亦可做数据备份之⽤.)--daemon通道准备(4台linux):1、sersync+rsync具备sersync2.5_32bit_binary_stable_final.tar.gz2、将sersync+rsync主机名为sersync,另外3台linux的主机名名为webserver1、webserver2、webserver3便于区分3、在3台linux新建/webroot,所属⽤户和组都是nobody4、在3台linux安装xinetd开始:1、在3台linux都编辑rsyncd.confvim /etc/rsyncd.confuid=nobodygip=nobodyuse chroot=yesaddress=192.168.56.0port 873log file=/var/log/rsyncd.logpid file=/var/run/rsyncd.pidlock file=/var/run/rsyncd.lockhosts allow=192.168.0.0/24hosts deny=*[webroot]path=/webrootcomment= web root share with rsyncread only=noauth users=user01secrets file=/etc/rsyncd_user.db2、在4台主机上编辑登录远程服务器的账号/密码# vim /root/passwd.txt123# chmod 600 /root/passwd.txt3、在三台机器上启⽤服务:# chkconfig rsync on# service xinetd start4、在sersync+rsync主机解压sersync2.5_32bit_binary_stable_final.tar.gz [root@sersync ~]# tar -xf sersync2.5_32bit_binary_stable_final.tar.gz5、编辑# vim /root/GNU-Linux-x86/confxml.xml。

Centos7利用rsync实现文件同步

Centos7利用rsync实现文件同步

Centos7利⽤rsync实现⽂件同步0x01 测试环境CentOS 7.4 Rsync服务端:192.168.204.130CentOS 7.4 Rsync客户端:192.168.204.1680x02 rsync同步⽅式第⼀种⽅式:rsync通过ssh⽅式同步1、Rsync服务端和客户端都需要安装rsync[root@localhost ~]# yum -y install rsync2、使⽤前提:需知道远程服务器开启ssh端⼝和账号密码A、推⽂件:[root@localhost tmp]# rsync -av /etc/passwd 192.168.204.168:/tmp/passwd.txtB、拉⽂件[root@localhost tmp]# rsync -av 192.168.204.168:/tmp/passwd.txt /tmp/test.txt#指定ssh端⼝[root@localhost tmp]# rsync -av -e "ssh -p 22"192.168.204.168:/tmp/passwd.txt /tmp/a.txt第⼆种⽅式:rsync通过服务的⽅式同步服务端配置:1、编辑配置⽂件/etc/rsyncd.confmotd file = /etc/rsyncd.motdtransfer logging = yeslog file = /var/log/rsyncd.logport = 873address = 192.168.204.130uid = nobodygid = nobodyuse chroot = noread only = nomax connections = 10[common]comment = rsync infopath = /tmpignore errorsauth users = adminsecrets file = /etc/rsyncd.secretshosts allow = 192.168.204.0/255.255.255.0hosts deny = *list = false2、创建⽤户密码⽂件echo "admin:123456" > /etc/rsyncd.secretschmod 600 /etc/rsyncd.secrets3、创建提⽰信息⽂件:echo "rsync info" > /etc/rsyncd.motd4、启动服务:rsync --daemonecho "rsync --daemon" >> /etc/rc.local客户端配置:创建密码⽂件(免密码输⼊):echo "123456" > /root/passwdchmod 600 /root/passwd拉取:rsync -avz --password-file=/root/passwd admin@192.168.204.130::common /tmp推送:rsync -avz --password-file=/root/passwd /tmp/ admin@192.168.204.130::common定时任务:1、新建⼀个rsync.sh⽂件,在⽂件中写⼊执⾏同步的命令:rsync -avz --password-file=/root/passwd admin@192.168.204.130::common /tmp >/dev/null2>&1 chmod 755 rsync.sh2、执⾏命令:crontab -e在定时⽂件中写⼊定时执⾏任务,实例如下:* * * * * /home/rsync.sh 每分钟执⾏⼀次同步脚本;0 * * * * /home/rsync.sh 每⼩时执⾏⼀次同步脚本;00 * * * /home/rsync.sh 每天零点执⾏⼀次同步脚本;09,18 * * * /home/rsync.sh 每天的9AM和6PM执⾏⼀次同步脚本;TIPS:匿名访问测试列举整个同步⽬录或指定⽬录:rsync 10.0.0.12 ::rsync 10.0.0.12 :: www /下载⽂件或⽬录到本地:rsync – avz 10.0.0.12 :: WWW/ /var/tmprsync – avz 10.0.0.12 :: www/ /var/tmp上传本地⽂件到服务端:rsync -avz webshell 10.0.0.12 :: WWW /参考⽂章:centos7安装配置rsync⽇常运维--rsync同步⼯具linux下匿名⽅式通过rsync同步⽂件Linux下rsync的安装及简单使⽤CentOS 7安装部署Rsync数据同步服务器。

rsync只同步指定目录的方法(已测)

rsync只同步指定目录的方法(已测)

rsync只同步指定⽬录的⽅法(已测)rsync同步指定⽬录rsync使⽤–include参数与–exclude参数来实现同步指定⽬录,并且–exclude⽬录放在后⾯。

例如:linux上⽂件⽬录复制代码代码如下:ls /usr/local/apache/htdocs/siteaabbccddee..zz只想同步aa,bb,ee这三个⽬录,其他的不同步。

实现代码:复制代码代码如下:/usr/local/rsync/bin/rsync -azv --include "aa/" --include "bb/" --include "ee" --exclude "/*" --progress rsync://127.0.0.1/site /work/backup/htdocs_bak/site说明:–include “aa/” –include “bb/” –include “ee” 包含了你要同步的⽬录 –exclude包含了不同步的⽬录所有⽤“/*”指定。

–exclude “/*” 除了–include同步的⽬录外,排除其他⽬录rsync://127.0.0.1/site 为你rsync服务端要同步的⽬录/work/backup/htdocs_bak/site 为你客户端的⽬录rsync同步指定正则⽂件(含⼦⽬录)前阵⼦做⽇志备份,把各个服务器上的⽇志同步到⽇志服务器上做备份,刚开始⽐较暴⼒,把所有压缩好的*gz⽂件全部传送到⽇志备份服务器上。

后来,发现这种⽅式⾮常不好,⼀旦备份的⽬录发⽣改变,服务器上⼜会把它所有的*gz⽂件全部再传⼀遍,即浪费时间⼜给服务i/o产⽣不必要的压⼒,后来想只同步某天的*gz⽂件。

需求描述:有⼀个类似于这样的⽬录结构,⼦⽬录的个数是不确定的复制代码代码如下:[root@IND_ tlbb]# tree.|-- ReadMe.txt| |-- Audit| `-- Money_2013-09-10.tgz|-- Audit_2013-09-10.tgz`-- Install我想同步*.py结尾的东东同步完成后复制代码代码如下:[root@IND_ tlbb]# tree.|-- Audit| `-- Money_2013-09-10.tgz`-- Audit_2013-09-10.tgz⽅式1:(失败)rsync -auvz –include=”*${YDate}*gz ” ./ 192.168.137.22::tlbb结果:会把所有的⽂件都同步过去了,连Install都同步过去了⽅式2:rsync -aruvz –include=”*${YDate}*gz” –include=”*/” –exclude=”*” ./* 192.168.137.22::tlbb结果:能把今天所有的gz⽂件都正常传过去喽,先允许所有的匹配的gz⽂件,再允许所有⼦⽬录,最后拒绝所有其他的。

Linux命令行中的文件同步和数据迁移的自动化技巧

Linux命令行中的文件同步和数据迁移的自动化技巧

Linux命令行中的文件同步和数据迁移的自动化技巧在Linux系统中,文件同步和数据迁移是常见的任务。

为了提高效率并确保准确性,自动化这些任务是非常重要的。

本文将介绍一些在Linux命令行中实现文件同步和数据迁移自动化的技巧。

一、使用rsync命令实现文件同步rsync是一个强大的文件同步工具,它能够在本地和远程主机之间同步文件。

以下是使用rsync命令实现文件同步的示例:1. 本地同步假设我们有一个名为source的文件夹,想要将其同步到一个名为destination的文件夹中。

```shellrsync -avz source/ destination/```这个命令将会递归地将source文件夹中的内容同步到destination文件夹中。

-a参数表示传输所有文件属性,-v参数表示打印详细输出,-z参数表示压缩传输。

2. 远程同步假设我们有一个远程主机,IP地址为192.168.0.100,用户名为user,我们想要将本地文件同步到远程主机。

```shellrsync-avzsource/************.0.100:/destination/path```这个命令将会将本地source文件夹中的内容同步到远程主机的/destination/path文件夹中。

二、使用scp命令实现文件传输scp命令是一个用于在本地主机和远程主机之间传输文件的工具。

以下是使用scp命令实现文件传输的示例:1. 从本地主机上传文件到远程主机```shellscp local_file user@remote_host:/destination/path```这个命令将会将本地主机上的local_file文件上传到远程主机的/destination/path目录中。

2. 从远程主机下载文件到本地主机```shellscp user@remote_host:/file/path local_destination_path```这个命令将会从远程主机的/file/path路径下载文件到本地主机的local_destination_path目录中。

如何在Shell脚本中实现文件同步

如何在Shell脚本中实现文件同步

如何在Shell脚本中实现文件同步Shell脚本是一种在Unix操作系统中使用的脚本语言,可用于自动化任务和进行系统管理。

文件同步是一种将文件从一个位置复制到另一个位置的过程。

在Shell脚本中,我们可以使用一些命令和技术来实现文件同步的功能。

本文将介绍如何在Shell脚本中实现文件同步,包括使用rsync命令、使用scp命令以及使用inotify工具。

一、使用rsync命令实现文件同步rsync是一个强大的文件同步和备份工具,它能够快速、安全地将文件从一个位置复制到另一个位置。

我们可以通过在Shell脚本中使用rsync命令来实现文件同步。

以下是一个使用rsync命令实现文件同步的示例脚本:```#!/bin/bashSOURCE_DIR="/path/to/source"DEST_DIR="/path/to/destination"rsync -av --delete $SOURCE_DIR/ $DEST_DIR/```在这个脚本中,我们指定了源目录和目标目录的路径。

通过`rsync -av --delete $SOURCE_DIR/ $DEST_DIR/`命令,我们可以将源目录下的文件和文件夹同步到目标目录,并且删除目标目录中不存在于源目录中的文件和文件夹。

二、使用scp命令实现文件同步scp命令用于在本地系统和远程系统之间进行文件传输。

我们可以通过在Shell脚本中使用scp命令来实现文件同步。

以下是一个使用scp命令实现文件同步的示例脚本:```#!/bin/bashSOURCE_FILE="/path/to/source/file"DEST_HOST="user@remotehost"DEST_DIR="/path/to/destination"scp $SOURCE_FILE $DEST_HOST:$DEST_DIR```在这个脚本中,我们指定了源文件的路径、目标主机和目标目录的路径。

Shell脚本编写的高级技巧实现文件同步和数据传输

Shell脚本编写的高级技巧实现文件同步和数据传输

Shell脚本编写的高级技巧实现文件同步和数据传输Shell脚本编写技巧是在自动化任务中非常有用的。

在本文中,我们将重点介绍如何使用Shell脚本实现文件同步和数据传输的高级技巧。

通过掌握这些技巧,您可以更加高效地完成文件同步和数据传输的任务。

一、文件同步1. 使用rsync命令进行文件同步rsync是一个功能强大的工具,用于在本地或远程系统之间同步文件和目录。

以下是使用rsync命令进行文件同步的示例:```shellrsync -avz /source/directory/username@remote_host:/destination/directory/```其中,-a选项表示使用归档模式同步文件(包括文件的权限、所有者信息、时间戳等),-v选项表示以详细模式输出同步过程中的信息,-z选项表示在传输过程中进行压缩。

您需要将/source/directory/替换为源目录的路径,将username@remote_host:/destination/directory/替换为目标目录的路径。

2. 使用inotify-tools实现即时文件同步inotify-tools是一个用于监控文件系统事件的工具集,可以实现文件的即时同步。

以下是使用inotify-tools实现即时文件同步的示例:```shellinotifywait -m /source/directory/ -e create,modify,delete |while read path action file; dorsync -avz $path$file username@remote_host:/destination/directory/ done```在上述示例中,inotifywait命令用于监控/source/directory/中的文件事件,当有文件被创建、修改或删除时,会输出相应的路径、动作和文件名。

然后,通过循环读取这些输出,使用rsync命令将变动的文件同步到远程主机。

rsync同步方案

rsync同步方案

rsync同步方案随着互联网的迅速发展,数据的传输和备份变得越来越重要。

rsync是一种快速、灵活且可靠的文件同步工具,被广泛应用于数据备份、文件传输以及网站部署等领域。

本文将介绍rsync的基本原理和使用方法,并结合实际案例,展示rsync同步方案的优势。

一、rsync概述rsync是一种基于TCP协议的文件传输工具,它通过对源文件和目标文件的比较,仅传输两者之间的差异部分,从而实现快速的同步和备份。

rsync支持本地同步和远程同步,能够在不同主机之间进行文件传输和备份。

由于其高效的数据同步方式,rsync在大规模文件传输中具有很大的优势。

二、rsync的工作原理1. 检查文件差异rsync通过校验文件的大小和时间戳来确定源文件和目标文件之间的差异。

如果两者相同,说明文件内容没有发生变化,无需进行传输;如果不同,则需要通过数据块校验来确定具体差异。

2. 传输差异数据根据文件差异的确定,rsync只传输源文件和目标文件之间的差异部分,而不是整个文件。

这种增量传输的方式大大减少了传输时间和带宽的占用。

3. 文件重建在接收端,rsync根据接收到的差异数据和目标文件的原有内容,进行文件重建。

通过这种方式,源文件和目标文件得以保持一致。

三、rsync同步方案的优势1. 高效快速rsync通过差异传输的方式,只需传输文件的变化部分,大大提高了同步的速度和效率。

尤其在大文件传输和网络带宽有限的情况下,rsync表现出色。

2. 文件校验rsync在传输过程中会对文件进行校验,确保文件的完整性和一致性。

通过校验和算法,减少了数据传输过程中出错的可能性。

3. 灵活性和可定制性rsync提供了丰富的参数选项,可以根据不同的需求进行定制。

用户可以灵活设置同步策略、过滤规则以及传输方式,满足个性化的同步需求。

四、实际应用案例以下是一个使用rsync实现数据备份的案例:假设有两台服务器,一台位于本地,一台位于远程。

我们需要定期将本地服务器上的数据备份到远程服务器。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

rsync文件同步案例服务端:192.168.56.10客户端:192.168.56.11、192.168.56.12(实例2和3用到)sersync+rsync:192.168.56.13(实例2和3用到)准备2台红帽linux系统虚拟机,先将防火墙以及selinux关闭,安装xinetd服务# iptables -F# service iptables save# setenforce 0# yum –y install xinetd (需提前搭建好yum源,详细不做介绍)一、实例1(基础)1、编辑rsync配置文件[root@www ~]# cat /etc/rsyncd.confuid=nobodygid=nobodyuse chroot=yesaddress=192.168.56.11port 873log file=/var/log/rsyncd.logpid file=/var/run/rsyncd.pidhosts allow=192.168.56.0/24[webroot]path=/webrootcomment= web root share with rsyncread only=yesdont compress=*.gz *.bz2 *.tgz *.rar *.zip --不需要压缩的文件列表auth users=user01 user02secrets file=/etc/rsyncd_user.db2、编辑登录用户文件[root@www ~]# vim /etc/rsyncd_user.dbuser01:123# chmod 600 /etc/rsyncd_user.db --密码数据文件的权限必须600,否则服务启不来3、新建webroot,以及修改所属用户和组# mkdir /webroot# chown nobody.nobody /webroot/4、启动rsync# chkconfig rsync on#/etc/init.d/xinetd start5、查看进程以及端口是否已经起来6、测试1:(将服务端的文件同步到客户端)1)在服务端新建测试文件# touch /webroot/1.text1)在客户端新建测试文件夹# mkdir /rsync2)在客户端执行同步命令# rsync -avz user01@192.168.56.10::webroot /rsyncrsync -avz user01@192.168.56.10::webroot /rsync等同于下面的命令rsync -avz rsync://user01@192.168.56.10/webroot /rsync/7、测试2:(将客户端的文件同步到服务端)1)在客户端执行[root@www ~]# rsync -avz /rsync/ rsync://user01@192.168.56.10/webroot由于rsyncd.conf中[webroot]为read only=yes,所以同步失败2)在服务端修改rsyncd.conf[root@www ~]# vim /etc/rsyncd.confuid=nobodygid=nobodyuse chroot=yesaddress=192.168.56.11port 873log file=/var/log/rsyncd.logpid file=/var/run/rsyncd.pidhosts allow=192.168.56.0/24[webroot]path=/webrootcomment= web root share with rsyncread only=yesdont compress=*.gz *.bz2 *.tgz *.rarauth users=user01 user02secrets file=/etc/rsyncd_user.db[webroot2]path=/webroot2comment= web2 root share with rsyncread only=nodont compress=*.gz *.bz2 *.tgz *.rarauth users=user01 user02secrets file=/etc/rsyncd_user.db3)新建webroot2,以及修改所属用户和组# mkdir /webroot2# chown nobody.nobody /webroot2/4)重启rsync# /etc/init.d/xinetd restart5)在客户端新建测试文件# touch /rsync/2.test6)在客户端执行同步命令[root@www ~]# rsync -avz /rsync/ rsync://user01@192.168.56.10/webroot28、不需要输入密码的同步方式(适合于脚本方式调用)1)在客户端编辑密码文件[root@www ~]# vim /root/passwd.txt123[root@www ~]# chmod 600 /root/passwd.txt2)在服务端新建测试文件[root@www ~]# touch /webroot/3.test3)测试二、实例2:(使用sersync整合rsync,实现WEB页面同步更新,亦可做数据备份之用.)--daemon通道准备(4台linux):1、sersync+rsync具备sersync2.5_32bit_binary_stable_final.tar.gz2、将sersync+rsync主机名为sersync,另外3台linux的主机名名为webserver1、webserver2、webserver3便于区分3、在3台linux新建/webroot,所属用户和组都是nobody4、在3台linux安装xinetd开始:1、在3台linux都编辑rsyncd.confvim /etc/rsyncd.confuid=nobodygip=nobodyuse chroot=yesaddress=192.168.56.0port 873log file=/var/log/rsyncd.logpid file=/var/run/rsyncd.pidlock file=/var/run/rsyncd.lockhosts allow=192.168.0.0/24hosts deny=*[webroot]path=/webrootcomment= web root share with rsyncread only=noauth users=user01secrets file=/etc/rsyncd_user.db2、在4台主机上编辑登录远程服务器的账号/密码# vim /root/passwd.txt123# chmod 600 /root/passwd.txt3、在三台机器上启用服务:# chkconfig rsync on# service xinetd start4、在sersync+rsync主机解压sersync2.5_32bit_binary_stable_final.tar.gz[root@sersync ~]# tar -xf sersync2.5_32bit_binary_stable_final.tar.gz5、编辑# vim /root/GNU-Linux-x86/confxml.xml<sersync><localpath watch="/var/tmp"><remote ip="192.168.56.10" name="webroot"/><remote ip="192.168.56.11" name="webroot"/><remote ip="192.168.56.12" name="webroot"/><!--<remote ip="192.168.8.39" name="tongbu"/>--><!--<remote ip="192.168.8.40" name="tongbu"/>--></localpath><rsync><commonParams params="-artuz"/><auth start="true" users="user01" passwordfile="/root/passwd.txt"/><userDefinedPort start="false" port="873"/><!-- port=874 --><timeout start="false" time="100"/><!-- timeout=100 --><ssh start="false"/></rsync><failLog path="/tmp/rsync_fail_log.sh" timeToExecute="60"/><!--default every 60mins execute once--><crontab start="false" schedule="600"><!--600mins--><crontabfilter start="false"><exclude expression="*.php"></exclude><exclude expression="info/*"></exclude></crontabfilter></crontab><plugin start="false" name="command"/></sersync>如图:6、启动sersync# ./sersync2 -d –rset the system paramexecute:echo 50000000 > /proc/sys/fs/inotify/max_user_watchesexecute:echo 327679 > /proc/sys/fs/inotify/max_queued_eventsparse the command paramoption: -d run as a daemonoption: -r rsync all the local files to the remote servers before the sersync work daemon thread num: 10parse xml config filehost ip : localhost host port: 8008daemon start,sersync run behind the consoleuse rsync password-file :user is user01passwordfile is /root/passwd.txtconfig xml parse successplease set /etc/rsyncd.conf max connections=0 Manuallysersync working thread 12 = 1(primary thread) + 1(fail retry thread) + 10(daemon sub threads) Max threads numbers is: 42 = 12(Thread pool nums) + 30(Sub threads)please according your cpu ,use -n param to adjust the cpu rate------------------------------------------rsync the directory recursivly to the remote servers onceworking please wait...execute command: cd /var/tmp && rsync -artuz -R --delete ./ user01@192.168.56.10::webroot --password-file=/root/passwd.txt >/dev/null 2>&1run the sersync:watch path is: /var/tmp参数说明:-d以后后服务器的方式启动-r清除远程服务器文件中本地服务器没有的文件-o 指定配置文件,默认在本在目录加载-n 指定线程数量7、测试在sersync_server上的/var/tmp目录中做文件的增删改则这些操作会被同步至其它三台webserver在sersync_server上# touch /var/tmp/1结果如下图:三、实例3:(使用sersync整合rsync,实现WEB页面同步更新,亦可做数据备份之用.)--ssh通道1、设置SSH使用密钥对验证:# ssh-keygen -t rsa# ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.0.36 --使用root用户验证(实际环境中使用普通账号)2、配置sersync:# cd /opt/sersync# cp -a confxml.xml confxml_ssh.xml# vim /opt/sersync/confxml_ssh.xml。

相关文档
最新文档