linux下使用rsync实现文件目录同步linux操作系统
“张天硕”通过精心收集,向本站投稿了6篇linux下使用rsync实现文件目录同步linux操作系统,下面小编给大家整理后的linux下使用rsync实现文件目录同步linux操作系统,希望大家喜欢!
篇1:linux下使用rsync实现文件目录同步linux操作系统
rsync是一款很不错的文件同步工作,他不但可以实现windows机器之间的文件同步还可以实现不同操作系统工程之的文件同步,下面我来介绍在linux中rsync实现文件同步技巧,
实现目标:
服务器A与服务器B同步备份,这里只说明服务器A同步到服务器B,服务器B还原到服务器A。
考虑安全因素,使用普通用户进行同步。
使用cronjob,定时同步。
A 服务器上/opt/web 目录,与B客户端服务器上/opt/web目录实现同步。即:B主动与A进行同步。(A的文件会同步到B机器上)
代码如下复制代码OS: Reaht AS4A Server 192.168.0.100 /opt/web
B Server 192.168.0.60 /opt/web
一. A Server config
1.安装服务
代码如下复制代码yum install xinetdyum install rsync
2. vi /etc/xinetd.d/rsync 修改 disable =yes 为 disable =no ,修改后的文件如下
代码如下复制代码# default: off
# description: The rsync server is a good addition to an ftp server, as it
# allows crc checksumming etc.
service rsync
{
disable = no
socket_type = stream
wait = no
user = backup
server = /usr/bin/rsync
server_args = –daemon
log_on_failure += USERID
}
3. 编辑主要配置文件/etc/rsyncd.conf (不存在则自己创建)
代码如下复制代码vi /etc/rsyncd.confuid = backup
gid = backup
use chroot = no # 不使用chroot
max connections = 4 # 最大连接数为4
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsyncd.lock
log file = /var/log/rsyncd.log # 日志记录文件
[web] # 这里是认证的模块名,在client端需要指定
path = /opt/web # 需要做镜像的目录
ignore errors # 可以忽略一些无关的IO错误
read nly = true # 只读
list = false # 不允许列文件
hosts allow = 192.168.0.0 # 允许的IP地址
hosts deny = 0.0.0.0/32 # 禁止的IP 地址
auth users = backup # 认证的用户名,如果没有这行,则表明是匿名
secrets file = /etc/backup.pass #认证用户的密码文件 认证文件名
4. 编辑服务器的密码文件 /etc/backup.pass,文件只能有可读权限 400
代码如下复制代码vi /etc/backup.pass #文件格式如下backup:123456
chmod 400 /etc/backup.pass
5.启动服务
首次启动rsync
代码如下复制代码rsync –daemon –config=/etc/rsyncd.conf如果提示
代码如下复制代码failed to create pid file /var/run/rsyncd.pid: File exists使用指令
代码如下复制代码rm -rf /var/run/rsyncd.pid用以下命令查看rsync是否已经运行:netstat -an|grep 873
代码如下复制代码[root@localhost web]# netstat -an|grep 873tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN
tcp 0 0 :::873 :::* LISTEN
重启已经在运行的rsync
代码如下复制代码[root@mail video]# ps -ef | grep rsyncroot 27284 1 0 10:26 ? 00:00:00 rsync –daemon –config=/etc/rsyncd.conf
root 30516 29986 0 18:35 pts/3 00:00:00 grep rsync
[root@mail video]# kill -9 27284
[root@mail video]# rsync –daemon –config=/etc/rsyncd.conf
service xinetd restart,重启 xinted 服务
rsync 系统自带, 需要使用 –deamon 方式进行启动,服务端口是 TCP 873
rsync –deamon –config=/etc/rsyncd.conf
如果要在启动时把服务起来,有几种不同的方法,比如:
a、加入inetd.conf
编辑/etc/services,加入rsync 873/tcp,指定rsync的服务端口是873
编加/etc/inetd.conf,加入rsync stream tcp nowait backup /bin/rsync rsync –daemon
b、加入rc.local
在各种操作系统中,rc文件存放位置不尽相同,可以修改使系统启动时rsync –daemon加载进去,
二. B Server config
1. yum install rsync 安装rsync服务
2. 创建rsync连接时的密码文件/etc/rsync_client.pass,所放目录自己随意安排,文件权限为只读400
vi /etc/rsync_client.pass #文件格式如下:
#只需要配置连接时使用的密码即可,必须与A服务器上定义的密码相同.
代码如下复制代码chmod 400 /etc/rsync_client.pass3. 使用 rsync 命令连接服务器,实现文件同步
代码如下复制代码rsync -vzrtopg –progress –delete –password-file=/etc/rsync_client.pass backup@192.168.0.100::web /opt/webPS:目录同步时要保存相同的文件属主信息,需要在B服务器上创建相同的用户
代码如下复制代码rsync -qcazrtopgl –progress –delete –password-file=/etc/rsync_client.pass –exclude=”*.gz” –exclude-from=/opt/pcdir backup@192.168.0.100::web /opt/webbackup为认证用户名;
192.168.0.100为服务器端IP;
Web为模块名;
/opt/web 为本地的目录
三.定时任务
代码如下复制代码[root@localhost admin_backups]# vi backup.sh内容如下:
代码如下复制代码#/bin/shrsync -qcazrtopgl –progress –delete –password-file=/etc/rsync_client.pass –exclude=”*.gz” –exclude-from=/opt/pcdir backup@192.168.0.100::web /opt/web
添加定时任务:
代码如下复制代码[root@localhost admin_backups]# crontab –e添加以下内容:
代码如下复制代码*/1 * * * * /home/admin/admin_backups/backup.sh >/dev/null 2>&1每个一分钟从服务器A同步到服务器B!
4. 使用 –execlude= 排除不需要同步的文件后缀名
代码如下复制代码rsync -vzrtopg –progress –delete –password-file=/etc/rsync_client.pass –exclude=”*.tmp”backup@192.168.0.100::web /opt/web
5. 使用 –execlude-from= 排除不需要同步的目录
代码如下复制代码[root@localhost opt]# rsync -vzrtopg –progress –delete –password-file=/etc/rsync_client.pass –exclude-from=/opt/pcdir backup@192.168.0.100::web /opt/web/opt/pcdir 文件的内容如下
cat /opt/pcdir
temp/
参数说明
-vzrtopg里的
v是verbose,
z是压缩,
r是recursive,
topg都是保持文件原有属性如属主、时间的参数
—-progress
是指显示出详细的进度情况
–delete
是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致
–exclude=”*.tmp” 不包含某些文件
–execlude-from= 排除不需要同步的目录
/opt/web/
指定CLIENT端存放镜象目的路径
篇2:rsync同步指定多文件目录方法linux操作系统
本文章来给大家介绍关于rsync同步指定多文件目录方法,希望此文章对各位朋友会有所帮助哦,
说明:
使用rsync -av --exclude=upload /home/mysql/backup /home/mysql/backup2/ 只能排除upload文件/目录。但如果要排除多个文件/目录,就需要新建个exclude.list,然后rsync -av --exclude-from=“exclude.list”指定不需要同步的文件/目录
实现:
代码如下复制代码# rsync -av --exclude-from=/root/exclude.list /home/mysql/backup /home/mysql/backup2/
//将/home/mysql/backup目录拷贝到/home/mysql/backup2目录下,/root/exclude.list中指定文件不拷贝。
注意exclude.list里面填写要排除的文件/目录,一行一个,直接写文件名即可。
所以如果要排除a,b.1,b.2,tmp/g,那么exclude.list里就应该写
代码如下复制代码a
b.*
tmp/g
而不是填写以下完整url,
不然这样还是会同步a,b.1,b.2,tmp/g
代码如下复制代码/home/mysql/backup/a
/home/mysql/backup/b.*
/home/mysql/backup/tmp/g
当然以下这种写法也是会同步a,b.1,b.2,tmp/g文件的,也是有问题
代码如下复制代码./home/mysql/backup/a
./home/mysql/backup/b.*
./home/mysql/backup/tmp/g
附录:
代码如下复制代码--exclude=PATTERN exclude files matching PATTERN--exclude-from=FILE read exclude patterns from FILE
--include=PATTERN don't exclude files matching PATTERN
--include-from=FILE read include patterns from FILE
篇3:windows rsync两台服务器目录同步功能实现Windows服务器操作系统
本文章来给各位同学介绍windows rsync两台服务器目录同步功能实现,有需要了解的朋友不防进入参考参考,
windows做为文件服务器,使用rsync的windows服务版本:cwRsyncServer 下载地址:rsync.samba.org
安装过程要设置用于系统服务的帐号和密码,可以默认。
注:此帐号用于启用crsync server服务,需要分配给帐号对要同步文件的相应权限,否则无法操作被同步的文件。
安装完成后修改配置文件 rsyncd.conf, 配置文件内容如下:
port = 52326
use chroot = false
strict modes = false
#hosts allow = * #允许所有的访问
hosts allow = 192.168.10.2 #指定特定的IP允许访问
log file = rsyncd.log
lock file = rsyncd.lock
max connections = 10
UID = 0
GID = 0
# Module definitions
# Remember cygwin naming conventions : c:work becomes /cygwin/c/work
#
[test]
path = /cygdrive/c/work
read nly = false
transfer logging = no
[test2]
path = /cygdrive/d/wwwroot/yanghengfei_com
read nly = yes
transfer logging = no
auth users = coldstar #同步使用的帐号
secrets file = rsyncd.secrets #密码文件
注:
rsyncd.secrets配置文件的格式为 用户名:密码,如:
coldstar:123456
即添加了一个用户 coldstar,密码为 123456。
现在来看个实例
两台服务器都是windows Enterprise Edition R2,都放在美国,一台在美国AK机房,另一台在佛罗里达州,两台网络的相互ping值大概在60-70毫秒
同步140G的文件,虚拟主机的目录,文件不是一般的多… 让rsync停在receiving file list … 停了好久 起码20分钟 -_-!
第一次不会快到什么程度,但是以后的增量或差异效果就很明显了!
Rsync for windows : Server端
Rsync for windows : Client端
下载Server端安装
开始 ->所有程序 ->cwRsync Server ->05. Start a Unix BASH Shell
输入: /bin/activate-user.sh
按l 选择本地用户 (本地用户名过多会报错?我这边200个左右的用户,但是提示“命令运行完毕,但发生一个或多个错误”)
Enter a user account for activation: 输入本地一个账户名
创建key后面也可以加的
exit退出
用ssh协议传输文件,需要启动opensshd服务,在services.msc里启动
编辑rsyncd.conf
开始 ->所有程序 ->cwRsync Server ->01. rsyncd.conf
use chroot = false
strict modes = false #严格模式是不是效验文件? (未测试)
hosts allow = * #允许哪个IP
log file = rsyncd.log
pid file = rsyncd.pid
[test]
path = /cygdrive/f/backup #路径
read nly = false #是否只读,不是为yes
transfer logging = yes #是否记录日志? (没去看)
开始 ->运行 ->services.msc ->启动rsync server的服务
客户端:
C:Program FilescwRsyncbin>rsync.exe -zvrtopg 管理员帐号@IP地址:/cygdr
ive/f盘/backup /cygdrive/f盘/backup
同步远端服务器的f盘的backup文件夹到本地的f盘的backup文件夹里
篇4:rsync实现linux文件同步到windows配置详解linux操作系统
本文章来给大家介绍关于rsync实现linux文件同步到windows配置详解,希望此方法对各位同学会有所帮助呀,
说明:
本篇文章实现linux定时将www,msyql,svn目录rsync到win2003指定目录上。
win2003安装CWRsync,做为rsync的server端,运行CWRsync守护进程daemon,接受linux同步过来的文件;
linux为centos,本身就有rsync,按时rsync文件到win上。
环境:
win2003 192.168.1.2 CWRsync rsyncd服务端,以daemon守护进程运行
linux 192.168.1.3 rsync客户端
实现:
1.win2003安装CWRsync及防火墙设置
请参照:CWRsync图文安装
2.修改CWRsync配置文件rsyncd.conf(CWRsync安装目录下,我这里的安装目录是:D:CWRsync)
代码如下复制代码uid = 0
gid = 0
use chroot = false
strict modes = false
hosts allow = 192.168.1.3
log file = rsyncd.log
# Module definitions
# Remember cygwin naming conventions : c:work becomes /cygwin/c/work
#
[www]
path = /cygdrive/e/bakup/1_3/www //CWRsync会自动将系统上所有的盘mount成/cygwin/x,因此/cygdrive/e/bakup/1_3/www指的是e:bakup1_3www目录
read nly = false
transfer logging = yes
auth users = rsyncd
secrets file = /cygdrive/D/CWRsync/rsyncd.secrets
[mysql]
path = /cygdrive/e/bakup/1_3/mysql
read nly = false
transfer logging = yes
auth users = rsyncd
secrets file = /cygdrive/D/CWRsync/rsyncd.secrets
[svn]
path = /cygdrive/e/bakup/1_3/
read nly = false
transfer logging = yes
auth users = rsyncd
secrets file = /cygdrive/D/CWRsync/rsyncd.secrets
3.添加CWRsync密码文件D:CWRsyncrsyncd.secrets
rsyncd:rsyncd //用户:密码
以上都是win2003的操作,下面是linux下的操作
4.添加rsync密码文件,这样linux定时rsync目录到win2003时就不需要输入密码
代码如下复制代码# cat /root/rsyncd.secretsrsyncd //直接输入密码
5.修改crontab,定时激发rsync同步
代码如下复制代码# crontab -e //添加以下内容
10 3 * * * rsync -vrlptD --progress --password-file=/root/rsyncd.secrets /home/www/data rsyncd@192.168.45.2::www
25 3 * * * rsync -vrlptD --progress --password-file=/root/rsyncd.secrets /home/mysql/data rsyncd@192.168.45.2::mysql
40 3 * * * rsync -vrlptD --progress --password-file=/root/rsyncd.secrets /home/svn rsyncd@192.168.45.2::svn
附录:
附录1.在linux端运行# rsync -avrtopg --progress --password-file=/root/rsyncd.secrets /home/www/data rsyncd@192.168.45.2::rsyncd会出现password file must not be other-accessible
continuing without password file
password:
问题password file must not be other-accessible已经回答了,保存密码的文件/root/rsyncd.secrets不应该被其它用户可读,
# chmod 600 /root/rsyncd.secrets //修改权限为600即可
篇5:linux系统下rsync文件同步配置工作笔记linux操作系统
最近需要迁移服务器,但是由于解析解析生效的时间问题,所以可能会导致网站可能出现不能提供服务器,解决办法为:将两个服务器的web程序代码进行同步,然后两个web服务器共同连接一个服务器,这样就算是解析没有生效用户也不会感觉到差距,数据可以远程连接,但是代码还是随时有人进行修改的,所以这边就需要将代码进行同步做一个镜像处理,
mysql远程连接这个以前已经实践过了,依稀记得该死的空间商封了3306….
今天从早上一直研究到现在就为了搞定rsync同步
服务器1:同步源服务器
服务器2:同步服务器也就是新服务器
首先检查两个服务器有没有安装rsync
代码如下复制代码[root@localhost .ssh]# rpm -qa rsync#如果没有安装可以 yum install rsync接下来需要配置源服务器了
代码如下复制代码#vi /etc/rsyncd.conf
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
[test] #rsync区段的设定名称,待会同步服务器会用到
path =/data/www/ #需要同步的数据存放路径
comment = test folder #注释
uid = apache #采用什么身份进行文件读取
gid = apache #同上,必须是有读取path权限的用户、组
ignore errors #忽略错误
read nly = yes #只读
list = no #不能列表
auth users = bak #连接rsync服务的帐号
secrets file = /etc/rsyncd.secrets #指定存放帐号密码的位置
接下来我们新建存放帐号用户名的文件
代码如下复制代码#vi /etc/rsyncd.secrets#格式:帐号:密码
bak:bac123
更改文件密码文件的权限
代码如下复制代码#chown root:root /etc/rsyncd.secrets
#chmod 600 /etc/rsyncd.secrets
启动rsync服务
代码如下复制代码#rsync --daemon
停止rsync服务器
代码如下复制代码kill `cat /var/run/rsyncd.pid` #kill 后是反引号
由于这里只是过渡备份使用所以就不加入自启动,加入自启动如下
修改/etc/xinetd.d/rsync文件,把其中的disable=yes改为disable=no
代码如下复制代码#sed -i -e “/disable/{ s/yes/no/ }” /etc/xinetd.d/rsync
#service xinetd.d restart
同步服务器配置
代码如下复制代码#rsync -azv --delete rsync://bak@192.168.1.2/test /var/www/html --password-file=/etc/rsyncpassword
#vi /etc/rsyncpassword #直接填写密码即可#
#chmod 600 /etc/rsyncpassword #修改文件的权限
#chown root:root /etc/rsyncpassword #修改文件的所属用户和组
定时更新
代码如下复制代码crontab -e
20 * * * * /data/rsync.sh #每20分钟同步一次,这里是增量备份所以不需要担心
至此rsync同步已经算搞定了,这样就搞定了我们的业务需求了,
下次买服务器还是得买个靠谱的,不然换个服务器真心难受。
其实rsync也可以做成网站代码备份。这个以后再说吧
篇6:linux中rsync异步服务器实现文件同步与备份linux操作系统
rsync是一个非常好用的文件同步软件它可以实现不同服务器之间文件实时备份功能,它比起我们常用的ftp要强大的多了,rsync可以实现文件有更新或有新文件就会自动备份到指定机器中去哦,下面我来给大家介绍一个例子,
Rsync 非常适合在两台机器之间快速同步大型、复杂的目录,例如论坛的附件目录。再配合 ssh ,则安全性也有保证,且可以利用 ssh public key 和 cron 来进行自动定时同步。
说明:两台机器分别为 localhost 和 remotehost ;用户分别为 localuser 和 remoteuser。
环境:FreeBSD 4.9 和 FreeBSD 6.1
代码如下复制代码设置 ssh public key 认证
$ssh-keygen -t dsa -b 2048
生成所需的密钥
$scp /home/localuser/.ssh/id_dsa.pub remoteuser@remotehost:/home/remoteuser/.ssh/localuser_id_dsa.pub
将公钥拷贝至 remotehost
$ssh remoteuser@remotehost
登录到?端
代码如下复制代码$cd .ssh/ ; cat localuser_id_dsa.pub >>authorized_keys至此,设置 ssh 认证完毕。
设置 rsync
确认两端机器都安装 rsync , freeBSD 有 ports ,安装非常方便,
写个脚本名为 backup.sh ,内容如下:
代码如下复制代码#!/bin/shRSYNC=/usr/local/bin/rsync
SSH=/usr/bin/ssh
KEY=/home/localuser/.ssh /id_rsa
RUSER=remoteuser
RHOST=remotehost
RPATH=/remote/dir
LPATH=/this/dir
$RSYNC -az—delte -e “$SSH -i $KEY” $RUSER@$RHOST:$RPATH $LPATH
-a 选项相当于选项 -rlptgoD 。简单来讲,此选项可递归并将几乎所有的东西同步过去,非常有用。注意的是, -a 默认不会保存 hardlinks ,不过可以单独用 -H 选项来实现。
-z 选项在传输中压缩文件,这无疑加快同步速度。
-delete 选项会删除接受方一些不应存在的文件,此文件在发送方已经被删除,这将保持目录完全同步。
让 cron 每天凌晨1点来跑这个脚本
代码如下复制代码$crontab -e0 1 * * * /home/localuser/bin/backup.sh
友情提示
rsync是没有自动启动同步功能了,如果我们要定时去备份一个网站数据我们就需要用到定时功能了,上面的例子来使用到了linux中$crontab命令来定时执行备份数据脚本了哦。
【linux下使用rsync实现文件目录同步linux操作系统】相关文章:
1.linux系统下rsync文件同步配置工作笔记linux操作系统
2.linux下迁移mysql数据库存放目录linux操作系统






文档为doc格式