linux rsync怎么同步文件

linux rsync怎么同步文件,第1张

一、rsync简介

用于替代rcp的一个工具,rsync可以通过rsh或ssh使用,也能以daemon模式去运行,在以daemon方式运行时rsync

server会开一个873端口,等待客户端去连接,连接时,rsync

server会检查口令是否相符,若通过口令查核,则可以通过进行文件传输,第一次连通完成时,会把整份文件传输一次,以后则就只需进行增量备份;

二、rsync常用参数

-v,--verbose 详细模式输出;

-a,--archive 归档模式,表示以递归的方式传输文件,并保持所有文件属性不变,相当于使用了组合参数-rlptgoD

-r, --recursive 对子目录以递归模式处理

-l, --links 保留软链结

-p, --perms 保持文件权限

-t, --times 保持文件时间信息

-g, --group 保持文件属组信息

-o, --owner 保持文件属主信息

-D, --devices 保持设备文件信息

-H, --hard-links 保留硬链结

-S, --sparse 对稀疏文件进行特殊处理以节省DST的 空间

--delete 删除那些DST中SRC没有的文件

-z, --compress 对备份的文件在传输时进行压缩处理;

三、rsync的六种不同的工作模式;

1)拷贝本地文件;

当SRC和DES路径信息中不包含冒号":"分隔符时,就启用这种工作模式:

[root@cmmailapp1 /]# rsync -avSH /home/coremail/ /cmbak/

2)使用一个远程shell程序(如rsh、ssh)来实现将本地机器的内容拷贝到远程机器,当DST路径地址包括冒号":"分隔符时启动该模式;

[root@cmmailapp1 /]# rsync -avSH /home/coremail/ 192.168.11.12:/home/coremail/

3)使用一个远程shell程序(如rsh、ssh)来实现将远程机器的内容拷贝到本地机器,当SRC地址路径包括冒号":"分隔符时启动该模式;

[root@cmmailapp2 /]# rsync -avSH 192.168.11.11:/home/coremail/ /home/coremail/

4)从远程rsync服务器中拷贝文件到本地机。当SRC路径信息包含"::"分隔符时启动该模式。

如:rsync -av root@172.16.78.192::www /databack

5)从本地机器拷贝文件到远程rsync服务器中。当DST路径信息包含"::"分隔符时启动该模式。

如:rsync -av /databack root@172.16.78.192::www

6)列远程机的文件列表。这类似于rsync传输,不过只要在命令中省略掉本地机信息即可。

如:rsync -v rsync://192.168.11.11/data

四、rsync服务端的配置;

环境:192.168.11.11为生产机;192.168.11.12为备份机;

那么需要192.168.11.11需要作为rsync的client;

192.168.11.12作为rsync的service端;

1、192.168.11.12_service端的配置;

1)[root@cmmailapp2 data]# touch /etc/rsyncd.conf //此文件为rsync的主配置问题,默认不存在需要手动创建;

2)定义同步的配置;

[root@cmmailapp2 data]# cat /etc/rsyncd.conf

[data]

path = /data/

auth users = coremail

uid = root

gid = root

secrets file = /etc/rsyncd.secrets

read only = no

[mysql]

Path = /home/coremail/var/mysql

auth users = coremail

uid = root

gid = root

secrets file = /etc/rsyncd.secrets

read only = no

[cmxt]

Path = /home/coremail/

auth users = coremail

uid = root

gid = root

secrets file = /etc/rsyncd.secrets

read only = no

3)定义密码文件/etc/rsyncd.secrets

[root@cmmailapp2 data]# cat /etc/rsyncd.secrets

coremail:coremail

4)启动rsync启动服务

[root@cmmailapp2 data]# cat /etc/xinetd.d/rsync

# default: off

# description: The rsync server is a good addition to an ftp server, as it \

# allows crc checksumming etc.

service rsync

{

disable = yes //需要修改为no;

socket_type = stream

wait= no

user= root

server = /usr/bin/rsync

server_args = --daemon

log_on_failure += USERID

}

[root@cmmailapp2 data]# chkconfig --level 2345 rsync on

[root@cmmailapp2 data]# chkconfig rsync on

[root@cmmailapp2 data]# chkconfig --level 2345 xinetd on

[root@cmmailapp2 data]# service xinetd restart

Stopping xinetd: [ OK ]

Starting xinetd: [ OK ]

2、192.168.11.11_client端的配置;

[root@cmmailapp1 /]# cat /etc/rsyncd.secrets

coremail

[root@cmmailapp1 /]# rsync -aSvH --password-file=/etc/rsyncd.secrets /home/coremail/coremail@192.168.11.12::data

[root@cmmailapp1 /]# rsync -aSvH --password-file=/etc/rsyncd.secrets /home/coremail/coremail@192.168.11.12::mysql

[root@cmmailapp1 /]# rsync -aSvH --password-file=/etc/rsyncd.secrets /home/coremail/coremail@192.168.11.12::cmxt

五、定义定时自行rsync同步,指定同步的日志所在的路径/var/log/rsync/下;

[root@cmmailapp1 log]# cat /root/rsync.sh

DATE=`date +%Y%m%d%H%M`

rsync -aSvH --password-file=/etc/rsyncd.secrets /home/coremail/ coremail@192.168.11.12::data>/var/log/rsync.date.$DATE

rsync -aSvH --password-file=/etc/rsyncd.secrets /home/coremail/ coremail@192.168.11.12::mysql>/var/log/rsync.mysql.$DATE

rsync -aSvH --password-file=/etc/rsyncd.secrets /home/coremail/ coremail@192.168.11.12::cmxt>/var/log/rsync.cmxt.$DATE

chmod u+x /root/rsync.sh

[root@cmmailapp1 log]# crontab -l

0 3 * * * /root/rsync.sh

执行时候的日子记录文件:

[root@cmmailapp1 log]# ls |grep 'rsync'

rsync.cmxt.201110180915

rsync.date.201110180915

rsync.mysql.201110180915

安装步骤:

1, tar zxvf rsync-2.6.8.tar.gz

2, cd rsync-2.6.8

3, ./configure –prefix= path

4, make make install

更改服务器端的配置文件

1,vi /etc/rsyncd.conf

uid = root指定运行该服务的权限

gid = root

log file = /var/log/rsyncd.log 指定日志文件

[mag_sync] 定义同步项目名 可以定义多个同步项目

path = /usr/local/apps/www/magazine/file 指定源路径

read only = no是否只读

auth users = mag_sync 该同步项目的认证用户名

secrets file = /etc/rsync.pas 该同步项目的密码文件

更改密码文件

vi /etc/rsync.pas

文件格式为 用户名:密码

mag_sync:magazine_rsync@zcom.com

更改密码文件的权限

chmod +600 /etc/rsync.pas

启动rsyncd服务

/usr/local/rsync-42.0/bin/rsync --daemon

rsync默认服务端口为873

加入rc.local

编辑/etc/rc.d/rc.local,在最后添加:

/usr/local/bin/rsync --daemon

客户端:

编辑密码文件

vi /etc/rsync.pas

magazine_rsync@zcom.com注意该文件只有密码部份

更改文件权限

chmod +600 / etc/rsync.pas

rsync -rvlHpogDtS --progress --delete --password-file=/etc/rsync.pas mag_sync@192.168.0.43::mag_sync /usr/local/apps/www/magazine/file

将此脚本加入计划任务

客户端 centos7:192.168.50.10

(Linux都会自带rsync,直接用就可以)

服务器 windows server:192.168.50.20

(windows需要自己安装,我使用的是

cwrsync_server_install 4.0.5)

在客户端上需要自己创建密码文件,权限设置成600(最高用户可读可写即可)

在服务器上同样需要创建密码文件,权限设置成600(最高用户可读可写)

修改配置文件

Linux上的密码文件要与windows上一致,无论是密码内容(仅指密码,用户名不坐考虑),还是采用的编码格式都要一样。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8653463.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-19
下一篇2023-04-19

发表评论

登录后才能评论

评论列表(0条)

    保存