可以先使用rpm -qa |grep rsync 查看rsync是否已经安装
rsync命令的用法
在配置完rsync服务器后,就可以从客户端发出rsync命令来实现各种同步的操作。rsync有很多功能选项,下面就对介绍一下常用的选项:
rsync的命令格式可以为:
1. rsync [OPTION]... SRC [SRC]... [USER@]HOST:DEST
2. rsync [OPTION]... [USER@]HOST:SRC DEST
3. rsync [OPTION]... SRC [SRC]... DEST
4. rsync [OPTION]... [USER@]HOST::SRC [DEST]
5. rsync [OPTION]... SRC [SRC]... [USER@]HOST::DEST
6. rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]
rsync有六种不同的工作模式:
1. 拷贝本地文件;当SRC和DES路径信息都不包含有单个冒号":"分隔符时就启动这种工作模式。
2.使用一个远程shell程序(如rsh、ssh)来实现将本地机器的内容拷贝到远程机器。当DST路径地址包含单个冒号":"分隔符时启动该模式。
3.使用一个远程shell程序(如rsh、ssh)来实现将远程机器的内容拷贝到本地机器。当SRC地址路径包含单个冒号":"分隔符时启动该模式。
4. 从远程rsync服务器中拷贝文件到本地机。当SRC路径信息包含"::"分隔符时启动该模式。
5. 从本地机器拷贝文件到远程rsync服务器中。当DST路径信息包含"::"分隔符时启动该模式。
6. 列远程机的文件列表。这类似于rsync传输,不过只要在命令中省略掉本地机信息即可。
下面说说rsyns的配置过程
一. 配置服务器端
首先编辑 /etc/rsyncd.conf 内容如下:(安装rsync后并不会自动创建该配置文件)
uid = nobody #进行备份的用户 nobody为任何用户
gid = nobody #进行备份的组 nobody为任何组
use chroot = no #不使用chroot
max connections = 10 #最大连接数
log file = /var/log/rsyncd.log #日志文件
[backup] # 这里是认证的模块名
path = /opt/xia/ #参与同步的目录
ignore errors # 可以忽略一些无关的IO错误
read only = yes #只读
list = no #不允许列清单
anth users = rsync #认证的用户名
secrets file = /etc/rsyncd.secrets #密码文件存放地址
然后在/etc下面编辑一个rsyncd.secrets的密码存放文件
格式为
用户名:密码 如 rsync:rsync
2.设定: /etc/xinetd.d/rsync:
即#vi /etc/xinetd.d/rsync
#default: off
#description:The rsync server is a good addition to am ftp server,as it\
# allows crc checksumming etc.
service rsync
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}
把其中的disable = yes 改为 disable = no之后退出保存就可以了,这还没有完成,还需启动rsync的服务。
#service xinetd restart
或者使用命令
rsync --daemon
重起也是上面的命令
rsync启动的端口为 873端口
二. 客户端的配置
1.设定密码文件
2.测试rsync执行指令
3.将rsync指令放入工作排程(crontab)
说明如下:
1.设定密码文件
假设把密码文件放在/root/rsyncd.secrets,内容很简单,只要含有一行密码即可:
#vi /root/rsyncd.secrets
rsync
退出vi编辑模式并保存。
注:为了安全,设定密码档案的属性为:600。rsyncd.secrets的密码一定要和Rsync Server密码设定档案里的密码一样。如果不同,将会出现 如下的错误:
@ERROR: auth failed on module backup
rsync: connection unexpectedly closed (90 bytes read so far)
rsync error: error in rsync protocol data stream (code 12) at io.c(165)
2.执行命令为:
rsync -vazu --delete --password-file=/etc/rsyncd.secrets rsync@192.168.0.153::backup /ttt
参数 v 表示详细提示
z 表示压缩
u 表示只进行更新
topg 保持文件原有属性如属主、时间的参数
--progress 指显示
--delete 指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致
root 为用户名
@192.168.0.153为服务器IP
::后面的backup为认证的模块名
/home/test 为备份到本地的目录名
--password-file=/etc/rsyncd.secrets 制定密码存放位置的地址
3.可以编写脚本 rsync.sh
#!/bin/bash
/usr/bin/rsync -vazu --delete --password-file=/etc/rsyncd.secrets rsync@192.168.0.153::backup /ttt
然后将该脚本加入到/etc/crontab文件中 定时执行更新
# crontab -e
输入以下一行:
0,30 * * * * /root/rsync.sh
保存退出,这样服务器B每个小时的0分和30分时都会自动运行一次rsync.sh,rsync.sh是负责保持服务器B和服务器A同步的。这样就保证了服务器A的所有更新在30钟后,服务器B也一样取得了和服务器A一样的最新的资料。
阅读(989) | 评论(0) | 转发(0) |