一 安装启动
1. 检查是否安装了 rsync
rpm -qa rsync
已经安装会显示如下
[root@sem ~]# rpm -qa rsync
rsync-3.0.6-9.el6_4.1.x86_64
2.如果没有安装可以使用yum安装
yum install -y rsync
3. 启动 rsync
/etc/init.d/xinetd star // 需安装xinetd
或
service xinetd start // 需安装xinetd
启动rsync服务端(独立启动)
# /usr/bin/rsync --daemon
二: 服务端配置
1.建立 rsync 账号密码文件
vi /home/rsync_user , 添加一行 账号 : 密码
vi /home/rsync_user
root:123456 // 认证用户root和系统用户账号,没有半毛钱关系,这是rsync服务独立的账号配置文件
2.修改权限
[root@sem bin]# cd /home
[root@sem home]# chmod 600 rsync_user
权限必须为600,否则会出错
3.创建rsync配置文件,默认是不存在的
vi /etc/rsyncd.conf
内容如下
uid = nobody // 传输文件时,执行的用户,或0
gid = nobody // 传输文件时,执行的用户组,或0
use chroot = yes // 在传输文件之前,服务器守护程序在将chroot 到文件系统中的目录中
pid file = /var/run/rsyncd.pid // 告知进程写到 /var/run/rsyncd.pid 文件中
log file = /var/log/rsyncd.log // 日志路径
[commons] // 模块名,主要是定义服务器哪个目录要被同步
path = /data/sem/data/common // 指定文件目录所在位置,这是必须指定的
comment = Rsync share test // 注释可以自己定义
auth users = root // 认证用户是 root,必须是服务器上真实存在的用户
secrets file = /home/rsync_user // 密码存在哪个文件
read only = yes // 是只读选择,也就是说,不让客户端上传文件到服务器
4.修改 /etc/xinetd.d/rsync
[root@sem ~]# vi /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 // 是否开启rsync,开启后可以执行
flags = IPv6
socket_type = stream // TCP数据包
wait = no // 连接机制为single-multi
user = root // 服务所属UID
server = /usr/bin/rsync // 启动程序
server_args = --config=/etc/rsyncd.conf --daemon // 参数配置
log_on_failure += USERID // 日志额外记录登录者账号
}
将 disable = no //把disable = yes改成no
或者执行以下命令也能开启服务
# chkconfig rsync on
其他相应参照修改。
5.启动rsync服务端(独立启动)
# /usr/bin/rsync --daemon
三 客户端
1. 设置密码文件
# vi /home/rsync_pass // 只需写登录用户密码,要与服务器端设置密码一致
123456
2. 修改权限
chmod 600 /home/rsync_pass
3.创建接收服务器文件的目录
mkdir /data/rsync-local
4.在同步服务文件之前,可以先浏览一下服务中带共享的文件,此处可以先查看一下共享的文件
[root@isensor rsync-local]# rsync root@192.168.1.3::commons
Password: //输入设置的密码123456
drwxr-x--- 32 2021/07/01 15:54:39 .
drwxr-x--- 4096 2021/06/30 18:59:21 css
drwxr-x--- 4096 2021/07/29 17:04:10 jsp
5. 手动同步共享目录
rsync -az --password-file=/home/rsync_pass root@192.168.1.3::commons /data/rsync-local
--password-file指定密码文件, 最后的路径是同步文件存放路径
6. 使用cron例行性任务定时从服务器同步文件
编辑文件 vi filersync.sh
#!/bin/bash /usr/bin/rsync -a --password-file=/home/rsync_pass root@192.168.3.118::commons /data/backup/files/commons
赋予可执行权限
编辑cron任务,定时调用filersync.sh 命令
# crontab -e
0 5 * * * /data/backup/files/filesync.sh
7. rsync failed: Permission denied (13)
修改服务器端的 配置文件 rsyncd.conf
uid = 0
gid = 0
或者把报错的目录 权限修改为755