CentOS5 + rsync 同步2台服务器的文件_Linux

Always use rsync over ssh

Since rsync does not provide any security while transferring data it is recommended that you use rsync over ssh . This allows a secure remote connection. Now let us see some examples of rsync.

rsync command common options

  • --delete : delete files that don't exist on sender (system)
  • -v : Verbose (try -vv for more detailed information)
  • -e "ssh options" : specify the ssh as remote shell
  • -a : archive mode
  • -r : recurse into directories
  • -z : compress file data

Task : Copy file from a local computer to a remote server

Copy file from /www/backup.tar.gz to a remote server called openbsd.nixcraft.in

$ rsync -v -e ssh /www/backup.tar.gz jerry@openbsd.nixcraft.in:~

Output:

Password:
sent 19099 bytes received 36 bytes 1093.43 bytes/sec
total size is 19014 speedup is 0.99

Please note that symbol ~ indicate the users home directory (/home/jerry).

Task : Copy file from a remote server to a local computer

Copy file /home/jerry/webroot.txt from a remote server openbsd.nixcraft.in to a local computer /tmp directory:

$ rsync -v -e ssh jerry@openbsd.nixcraft.in:~/webroot.txt /tmp

Password

Task: Synchronize a local directory with a remote directory

$ rsync -r -a -v -e "ssh -l jerry" --delete openbsd.nixcraft.in:/webroot/ /local/webroot

Task: Synchronize a remote directory with a local directory

$ rsync -r -a -v -e "ssh -l jerry" --delete /local/webroot openbsd.nixcraft.in:/webroot

Task: Synchronize a local directory with a remote rsync server

$ rsync -r -a -v --delete rsync://rsync.nixcraft.in/cvs /home/cvs

Task: Mirror a directory between my "old" and "new" web server/ftp

You can mirror a directory between my "old" (my.old.server.com) and "new" web server with the command (assuming that ssh keys are set for password less authentication)

$ rsync -zavrR --delete --links --rsh="ssh -l vivek" my.old.server.com:/home/lighttpd /home/lighttpd

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

当需要把服务器上的文件复制到另外的机器上,可用rsync来同步文件。

一、服务器端配置:
# yum -y install xinetd

# vi /etc/xinetd.d/rsync
将如下代码

复制代码 代码如下:

service rsync
{
disable = yes
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = –daemon
log_on_failure += USERID
}

中的 disable = yes 改成 disable = no

然后启动 xinetd

复制代码 代码如下:

# /etc/init.d/xinetd start

注意:如果服务器上装有防火墙记得要打开端口,默认端口是873

复制代码 代码如下:

# telnet 127.0.0.1 873

Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
# iptables -A INPUT -s 192.168.0.0/255.255.255.0 -p tcp -m tcp --dport 873 -j ACCEPT
# iptables -A INPUT -p tcp -m tcp --dport 873 -j DROP

# vi /etc/rsyncd.conf

复制代码 代码如下:

[backup]
path = /www
auth users = admin
uid = root
gid = root
secrets file = /etc/rsyncd.secrets
read only = no

[服务器代号]
path = 备份文件路径
auth users = 授权帐号
uid = 执行时的uid
gid = 执行时的gid
secrets file = 密码文件位置
read only = 是否只读

# vi /etc/rsyncd.secrets

复制代码 代码如下:

admin:1234 #用户名:密碼

给文件正确的权限
# chown root:root /etc/rsyncd.secrets
# chmod 600 /etc/rsyncd.secrets

二、client 端进行同步
客户端默认好像已经装了rsync,没有的话装下:
# yum -y install rsync

执行异步同步操作:

/usr/bin/rsync -avz –progress  admin@192.168.1.105::backup /www

同步命令说明:

1 显示目录内容

命令
——
a) rsync
b) rsync -r
c) rsync jack@192.168.0.1::
d) rsync ssh_user@192.168.0.1:

命令说明
———
a) 显示目录内容(第一层)
b) 递归显示目录内容
c) 显示远程主机目录内容
*注1:端口模式, 基于rsync用户的身份验证
*注2:rsync server上的目录必须具有xx7的权限.
d) 查看远程主机目录内容
*注1:remote shell模式, 通过ssh连接的基于系统本地用户的身份验证
*注2:这里只使用了一个冒号(:),同时用户名是远程主机的ssh 用户,密码也是ssh用户对应的密码。
*注3:使用””,则列出文件夹本身的信息。若要列出文件夹内容,应使用”/”。

参数说明
———
-r 对目录进行递归操作

2 本地目录之间同步

命令
——
a) rsync -av –progress / *** 注意(/) ***
b) rsync -av –progress
c) rsync -avu –progress –delete /
d) rsync -av –progress –temp-dir=/tmp /

命令说明
———
a) 同步src-dir目录下所有文件到dst-dir目录下
b) 同步src-dir目录下所有文件到dst-dir/src-dir目录下
c) 对src-dir目录内容向dst-dir目录下进行差异更新,有增加/更新则添加替换,有减少则对其删减
d) 比a)多了–temp-dir=/tmp,即指定/tmp为临时交换区,这样可以避免因目标目录空间不够引起的无法同步文件的错误。

参数说明
———
-a 相当于 -rlptgoD 的集合
-u 等同于 –update,在目标文件比源文件新的情况下不更新
-v 显示同步的文件
–progress 显示文件同步时的百分比进度、传输速率
–delete 删除目标目录中多于源目录的文件

3 异地主机之间同步
命令
——
a) rsync -avz –progress jack@192.168.0.1::/
b) rsync -avz –progress jack@192.168.0.1::/ –password-file=/home/jack/rsync.jack
c) rsync -avuz –progress –delete jack@192.168.0.1::/ –password-file=/home/jack/rsync.jack
d) rsync -avz –progress jack@192.168.0.1::/

命令说明
———
a) 同步本地目录的内容到远程主机192.168.0.1的目录下,jack是rsync数据库用户(参见3. /etc/rsync.secrets)
b) 通过自动读取用户密码而实现非交互登录文件同步
c) 较b)多了-u和–delete
d) 同步远程主机内容到本地目录

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索rsync
centos5
centos7 rsync 服务器、rsync 多台服务器同步、ftp服务器上rsync同步、centos rsync同步文件、linux rsync 实时同步,以便于您获取更多的相关知识。

时间: 2024-09-30 15:10:49

CentOS5 + rsync 同步2台服务器的文件_Linux的相关文章

控制一台服务器向另外一台服务器复制文件

问题描述 控制一台服务器向另外一台服务器复制文件 具体是这样的,就是些一个控制台程序,从一个服务器的某个地方拷贝一个文件到另外一个服务器,应该怎样实现,如果太烦琐的话,请给我思路.谢谢 解决方案 控制台,可以不用写程序,直接用 FTP 功能即可. TFP 复制文件 解决方案二: 用FTP 功能试一下 解决方案三: 控制台,可以不用写程序,直接用 FTP 功能即可. 解决方案四: 大家好,我想请教一下,如果不用ftp,能不能实现这个功能,请问有哪位大神有例子参考的,同时,谢谢各位朋友的支持.

java实现两台服务器间文件复制的方法_java

本文实例讲述了java实现两台服务器间文件复制的方法.分享给大家供大家参考.具体分析如下: 通常我们使用最多的文件复制功能就是同服务器之间的文件复制功能,这里介绍的是在普通文件复制上功能升级,可以实现两台服务器实现文件的复制,下面一起来看看代码. 1.服务器端 复制代码 代码如下: package sterning; import java.io.BufferedInputStream; import java.io.DataInputStream; import java.io.DataOut

rsync+sersync+inotify实现服务器间文件同步

步骤一:rsync安装配置 安装和使用rsync 2.1 rsync的安装 每个镜像服务器(需要同步的服务器)都需要安装rsync守护进程. 一般发行版都带有rsync,因此我这里直接使用yum安装.当然在很多发行版上默认已经安装了rsync.  代码如下 复制代码     [root@web1 ~]# yum install rsync     [root@web1 ~]# rpm -ql rsync     /etc/xinetd.d/rsync     /usr/bin/rsync    

java实现两台服务器实现文件的复制

1.服务器端  代码如下 复制代码 package sterning; import java.io.BufferedInputStream; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.File; import java.io.FileInputStream; import java.net.ServerSocket; import java.net.Socket; public

shell脚本从SVN推送到多台服务器的代码_linux shell

复制代码 代码如下: SRCDIR=/letv/data/www/htdocs_user/MOD=userIP_LIST=(192.126.32.92 192.126.32.93 192.181.155.160 192.181.155.214 192.181.155.215 192.126.32.171) for i in ${IP_LIST[*]}do        echo -e "\n\nPUSH == $i == \n"        /usr/bin/rsync -vzrto

expect实现单台、多台服务器批量scp传输文件_linux shell

今天公司同事要在一台服务器上对另外两台同机房的服务器进行文件传输,两台服务器的文件存放地址一致,密码和key也一致(我们公司在安全上做得有点变态的),为了效率写了下面这个脚本. 1.单台传输脚本 cat /root/soft_shell/allscp.sh 复制代码 代码如下: #!/usr/bin/expect if {$argc < 2} {         send_user "usage: $argv0 src_file username ip dest_file password

inux-rsync同步到远程服务器问题

问题描述 rsync同步到远程服务器问题 如果远程服务器时间比本地时间快,则本地修改的文件就不会同步到远程主机上,md5不一样,我用的是rsync -az就会同步不过去 :如果改成 rsync -aIz 则可以同步过去(但感觉这个有些类似scp)而不是增量了,求原创大神帮助. 解决方案 上面的答案有帮助吗?如果还有问题,请提出来,如果对答案满意,请顶一下,并标记为采纳答案,谢谢! 解决方案二: 加上参数-t, –times 保持文件时间信息 参考 rsync参数详解

linux下使用rsync同步目录_Linux

本文描述了linux下使用rsync单向同步两个机器目录的问题. 使用rsync同步后可以保持目录的一致性(含删除操作). 数据同步方式 1.从主机拉数据 备机上启动的流程 同步命令: rsync -avzP --delete root@{remoteHost}:{remoteDir} {localDir} 参数说明: -a 参数,相当于-rlptgoD(-r 是递归 -l 是链接文件,意思是拷贝链接文件:-p 表示保持文件原有权限:-t 保持文件原有时间:-g 保持文件原有用户组:-o 保持文

怎样实现跨服务器删除文件....

问题描述 我把文件路径从一台服务器传给另一台服务器,怎样实现在另一台服务器进行删除. 解决方案 a.用文件存储,就好象操作本地硬盘的方式b.ftp,上传于删除都可进行c.2个服务器都架自己编写的服务,用http请求进行相应操作不过a.b不知道哪个效率更高些,当然io占用低的时候肯定文件存储高啦,可当io占用率跟高的时候我就不清楚了这也是我现在项目中的疑问,文件存储和ftp跨服务器操作,当多台服务器对存储进行操作和对ftp进行操作,哪个效率更高些解决方案二:为什么会有这种需求..如果有的话,,,建