Centos rsync文件同步配置步骤分享

rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了——remote sync

它的特性如下:
  可以镜像保存整个目录树和文件系统。
  可以很容易做到保持原来文件的权限、时间、软硬链接等等。
  无须特殊权限即可安装。
  快速:第一次同步时 rsync 会复制全部内容,但在下一次只传输修改过的文件。rsync 在传输数据的过程中可以实行压缩及解压缩操作,因此可以使用更少的带宽。
  安全:可以使用scp、ssh等方式来传输文件,当然也可以通过直接的socket连接。
  支持匿名传输,以方便进行网站镜象。

一、服务器端配置:
# 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 或 service xinetd restart
注意:如果服务器上装有防火墙记得要打开端口,默认端口是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 (这个文件如果不存在自己创建)

#Global Settings
uid = root #以什么身份运行rsync
gid = root
use chroot = no #不使用chroot
max connections = 20 #最大连接数
secrets file = /etc/rsyncd.secrets #密码文件位置,认证文件设置,设置用户名和密码
log file = /var/log/rsyncd.log #指定rsync的日志文件,而不将日志发送给syslog
pid file = /var/run/rsyncd.pid #指定rsync的pid文件
lock file = /var/run/rsync.lock #指定支持max connections参数的锁文件,默认值是/var/run/rsyncd.lock
comment = hello world
#motd file = /etc/rsyncd.motd #欢迎信息文件名称和存放位置(此文件没有,可以自行添加)

[backup] # 这里是认证的模块名,在client端需要指定
path = /titan24/www/repos # 需要做镜像的目录
auth users = rsync # 授权帐号。认证的用户名,如果没有这行,则表明是匿名,多个用户用,分隔
read only = no # yes只读 值为NO意思为可读可写模式,数据恢复用NO
hosts allow = 192.168.3.128 #允许访问的服务器IP
hosts deny = * #黑名单
list = true # 允许列文件
#ignore errors # 可以忽略一些无关的IO错误
#exclude = cache/111/ cache/222/ #忽略的目录

# vi /etc/rsyncd.secrets (设置访问(认证)的用户名密码)

rsync:111111 #用户名:密碼

给文件正确的权限
# chown root:root /etc/rsyncd.secrets
# chmod 600 /etc/rsyncd.secrets  #(必须是600)

二、client 端进行同步

客户端默认好像已经装了rsync,没有的话装下:
# yum -y install rsync

执行异步同步操作:

/usr/bin/rsync -avz --progress  rsync@192.168.3.191::backup  /www

# crontab -e #(可以定时每三分钟同步一次文件)

*/3  * * * * rsync -avz --progress  rsync@192.168.3.191::backup  /www

下面这个命令完整一点:

#vi /etc/rsyncd.pas
加入密码
rsyncofpass
注意,客户端的密码文件只需要密码,而不需要用户名!

更改文件权限:
#chmod 0600 /etc/rsyncd.pas

#rsync -vzrtopgu --progress --delete --password-file=/etc/rsyncd.pas   rsync_user@192.168.0.2::rsync_module_name1 /www/

这个命令行中-vzrtopg里的v是verbose,
z是压缩传输,
r是recursive,
topg都是保持文件原有属性如属主、时间的参数。
u是只同步已经更新的文件,避免没有更新的文件被重复更新一次,不过要注意两者机器的时钟的同步。
–progress是指显示出详细的进度情况,
–delete是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致。
后 面的rsync_user@192.168.0.2::rsync_module_name1中,之后的rsync_module_name1是模块名, 也就是在/etc/rsyncd.conf中自定义的名称,rsync_user是指定模块中指定的可以同步的用户名。
最后的/www是备份到本地的目录名。
在这里面,还可以用-e ssh的参数建立起加密的连接。
可以用–password-file=/password/path/file来指定密码文件,这样就可以在脚本中使用而无需交互式地输入验证密码了,这里需要注意的是这份密码文件权限属性要设得只有属主可读。

#/usr/local/rsync/bin/rsync -vzrtopg –progress –delete rsync_user@192.168.0.2::rsync_module_name1 /tmp/
Password:
或者你也可以制定password文件
由于需要系统crontab执行,所以这里采用读入密码文件的方式,
这个时候就成功了。

同步命令说明:

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) 同步远程主机内容到本地目录

(0)

相关推荐

  • 64位CentOS 6.0下搭建LAMP环境详细步骤

    1.确认搭建LAMP所需要的环境是否已经安装 [root@centos6 ~]# rpm -q make gcc gcc-c++ zlib-devel libaio 备注:安装libpng时候需要zlib-devel              安装mysql时候需要libaio 2.如果没安装则yum安装 [root@centos6 ~]# yum install make gcc gcc-c++ zlib-devel libaio -y 3.由于要使用编译安装,所以查看httpd.mysql.

  • centos6利用yum安装php mysql gd的步骤

    系统:Centos6.0 32位 一.安装mysql #yum -y install mysql mysql-server mysql-devel 配置mysql开机启动服务 #chkconfig --add mysqld (在服务清单中添加mysql服务) #chkconfig mysqld on (设置mysql服务随开机启动) #service mysqld start (启动mysql服务) 二.安装PHP #yum -y install php #service httpd resta

  • centos下更新Python版本的步骤

    安装完CentOS5.9(Final)后,执行#Python与#python -V,看到版本号是2.4.3,很老了,而且之前写的都是跑在python3.X上面的,3.X和2.X有很多不同,有兴趣的朋友可以参考下这篇文章: http://www.jb51.net/article/34011.htm 更新python千万不要把老版本的删除!新老版本是可以共存的,很多基本的命令.软件包都要依赖预装的老版本python的,比如yum. 更新python: 第1步:更新gcc,因为gcc版本太老会导致新版

  • CentOS 5 上安装yum的方法

    下面有两种办法可以安装yum: 一.下载yum的rpm包直接安装 http://centos.ustc.edu.cn/centos/5.4/os/i386/CentOS/yum-3.2.22-20.el5.centos.noarch.rpm http://centos.ustc.edu.cn/centos/5.4/os/i386/CentOS/yum-fastestmirror-1.1.16-13.el5.centos.noarch.rpm 下载到某个目录之后,执行下面的命令rpm -ivh y

  • 在CentOS 6 中安装 WordPress(二)安装WordPress

    1.两种方式得到Wordpress   首先你可以去wordpress官方网站看下最新的wordpress的下载地址多少.比如wordpress 3.9.1的下载地址是: http://cn.wordpress.org/wordpress-3.9-zh_CN.zip   先用mkdir命令随便建立一个目录,这里使用wordpress,在该目录下用wget来请求wordpress的下载地址,这里用: wget http://cn.wordpress.org/wordpress-3.9-zh_CN.

  • CentOS+Nginx+PHP+MySQL详细配置(图解)

    一.安装MySQL 目前web服务器已经很少有跑静态页面的,如果要跑动态网站那当然就离不开数据库,虽然在以前文章中有写MySQL是怎么安装的,但是感觉好久没装MySQL,现在只把步骤贴出来,就不做过多的讲解了 #useradd mysql #tar zxvf mysql-5.0.40.tar.gz #cd mysql-5.0.40 #./configure --prefix=/usr/local/mysql #make && make install #/usr/local/mysql/b

  • 在CentOS上MySQL数据库服务器配置方法

    无意中还找到了CentOS的专业论坛,记住:http://www.centospub.com 于是,开始的学习配置 本次环境: CentOS系统, mysql-server(版本忘了,因为是使用yum安装的) 过程如下(转载,根据本人安装详细要求,略加修改) : 在提到网站构架的时候,我们经常能够看到"LAMP"的说法,它就是"Linux + Apache + MySQL + PHP". MySQL+PHP的协同成功案例已经很多了.比如国外的PHPBB,VBB,国内

  • CentOS 6.6下Redis安装配置记录

    在先前的文章中介绍过redis,以下内容为自己在CentOS上安装Redis的记录.供后期在做改进. 1.安装需要的支持环境 在安装Redis之前首要先做的是安装Unix的Tcl工具,如果不安装的话后期将无法对Redis进行测试.在后期执行make test的时候返回如下错误信息:You need tcl 8.xuyao de5 or newer in order to run the Redis test,具体的流程为: 复制代码 代码如下: cd /usr/local/src wget ht

  • CentOS 6.4安装配置LNMP服务器(Nginx+PHP+MySQL)

    准备篇 1.配置防火墙,开启80端口.3306端口vi /etc/sysconfig/iptables-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT #允许80端口通过防火墙-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT #允许3306端口通过防火墙 备注:很多网友把这两条规则添加到防火墙配置的最后一行,导致防火墙启动失败, 正确

  • CentOS 5.5使用yum来安装LAMP(php运行环境)

    1. 换源,sohu的相当好用. 1.1备份CentOS-Base.repo cd /etc/yum.repos.d/ cp CentOS-Base.repo CentOS-Base.repo.bak 1.2替换源 用vi打开CentOS-Base.repo,并将内容清空,然后将下面的内容复制进去,并保存. # CentOS-Base.repo # # This file uses a new mirrorlist system developed by Lance Davis for Cent

  • CentOS 6.4安装配置LAMP服务器(Apache+PHP5+MySQL)

    准备篇: 1.配置防火墙,开启80端口.3306端口vi /etc/sysconfig/iptables-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT #允许80端口通过防火墙-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT #允许3306端口通过防火墙 备注:很多网友把这两条规则添加到防火墙配置的最后一行,导致防火墙启动失败, 正

  • 解析centos中Apache、php、mysql 默认安装路径

    apache:如果采用RPM包安装,安装路径应在 /etc/httpd目录下apache配置文件:/etc/httpd/conf/httpd.confApache模块路径:/usr/sbin/apachectlweb目录:/var/www/html如果采用源代码安装,一般默认安装在/usr/local/apache2目录下 php:如果采用RPM包安装,安装路径应在 /etc/目录下php的配置文件:/etc/php.ini如果采用源代码安装,一般默认安装在/usr/local/lib目录下ph

  • centos 5 手动分区来安装系统的方法

    对于centos.fedora和redhat的关系这里无需赘述.redhat我用不起,它的防盗版工作做的又相当好,所以我从来没有用过redhat.fedora是我刚接触linux就用的一个系统,我觉得它很好用,只是它版本更新太快了,相信很多像我这样的菜鸟都曾在新版本出来时犹豫过要不要更新.centos据说与redhat如出一辙,有人说除了logo不同外,两者完全一致,不过也有人说两者其实并不完全相同,编译的不同导致两者在应用上有着细微的差别:它是否好用,有待于考察. 在安装时我采用的是手动分区,

  • centos7.0之Lnmp和Lamp详细介绍

    centos7.0之Lnmp和Lamp 首先配置防火墙 CentOS 7.0默认使用的是firewall作为防火墙 1.关闭firewall: systemctl stop firewalld.service #停止firewall systemctl disable firewalld.service #禁止firewall开机启动 2.关闭SELINUX vi /etc/selinux/config #SELINUX=enforcing #注释掉 SELINUX=disabled #增加 :

  • CentOS 5.5下安装MySQL 5.5全过程分享

    打开终端 切换到根目录 [shell@localhost ~]# su -安装Mysql5.5之前先卸载CentOS自带的Mysql5.0. [root@localhost ~]# yum remove mysql 安装cmake 下载cmake源码包cmake-2.8.5.tar.gz [root@localhost ~]# wget http://www.cmake.org/files/v2.8/cmake-2.8.5.tar.gz编译安装[root@localhost]# tar xzvf

  • CentOs6.5中安装和配置vsftp简明教程

    一.vsftp安装篇 复制代码 代码如下: # 安装vsftpdyum -y install vsftpd# 启动service vsftpd start# 开启启动chkconfig vsftpd on 二.vsftp相关命令之服务篇 复制代码 代码如下: # 启动ftp服务service vsftpd start# 查看ftp服务状态service vsftpd status # 重启ftp服务service vsftpd restart# 关闭ftp服务service vsftpd sto

  • Flask框架学习笔记(一)安装篇(windows安装与centos安装)

    Flask 依赖于两个外部库: Werkzeug  和  Jinja2  . Werkzeug 是一个 WSGI (在 web 应用和多种服务器之间开发和部署的标准 Python 接口) 的工具集,Jinja2 负责渲染模板. 一.安装 Flask安装的前提条件 1.已安装python2.x版本 2.已安装easy_install 在安装flask之前,你必须要先安装python和easy_install,easy_install只支持pyhon2.x版本不支持python3.x版本,所以你在安

  • linux服务器用centos还是ubuntu系统

    linux服务器系统多使用CentOS.uBuntu.Gentoo.FreeBSD.Debian. 服务器操作系统应该选择 Debian/Ubuntu 还是 CentOS ,CENTOS现在市场占有率第一了 [小议]centos与ubuntu的区别 CentOS(Community ENTerprise Operating System)是Linux发行版之一,它是来自于Red Hat Enterprise Linux依照开放源代码规定释出的源代码所编译而成.由于出自同样的源代码,因此有些要求高

随机推荐