检查rsycn是否安装
检查方法:rpm -qa rsync
出现rsync 包名就是安装了
安装rsycn
rsync的安装可以使用yum直接安装:yum install rsync
rsycn的服务端/文件接收端配置
1、先创建备份目录
mkdir /data/xsbak
2、服务端需要开启rsyncd服务,添加配置文件rsyncd.conf
vi /etc/rsyncd.conf
#以下是全局配置
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
lock file = /var/lock/rsyncd
[xsbak] #模块名,在源服务器指定这个名字
comment = sync rsync/home #描述信息
path = /data/xsbak #备份目录
use chroot=yes #使用chroot,用root权限
read only = no #设置本地备份目录为读写权限
uid=root
gid=root
max connections=10 #客户端最大连接数
auth users = root #指定数据同步用户
secrets file = /etc/rsyncd.pass #指定数据同步用户信息文件,里面是用户名和密码
hosts allow=39.103.190.34 #允许连接的客户端
ignore errors = yes #忽略出现I/O错误
timeout = 600
3、 创建认证文件
vi /etc/rsyncd.pass
##代码
root:XXX #格式是用户名:密码
加权限:chmod 600 /etc/rsyncd.pass
主要有权限读这个文件,否则会报错
ERROR: password file must not be other-accessible
rsync error: syntax or usage error (code 1) at authenticate.c(175) [Receiver=3.0.9]
4、修改/etc/xinetd.d/rsync文件,disable 改为 no
service rsync
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}
5、启动服务端
rsync --daemon --config=/etc/rsyncd.conf
注:重启时记得删除rsyncd.pid:rm -rf /var/run/rsyncd.pid
6、开放端口
rsync默认端口是873,防火墙要放开该端口,否则客户端会无法连接的
#开放873端口
sudo firewall-cmd --zone=public --add-port=873/tcp --permanent
#重启防火墙服务
sudo systemctl restart firewalld.service
rsycn的客户端/文件发送端配置
1、客户端配置简单 只需要配置密码既可
vi /etc/rsync_client.pwd
##代码
XXX #只需要填写rsync服务的密码,和服务端的密码一致
#属主要有权限读这个文件,否则会报没权限
chmod 600 /etc/rsync_client.pwd
2、客户端同步测试
将客户端39.103.190.34的/home/xsbak下的文件同步到 81.70.251.43远程服务器服务端 xsbak 目录下面,命令如下:
rsync -auvrtzopgP --progress --password-file=/etc/rsync_client.pwd /home/xsbak root@81.70.251.43::xsbak
注:xsbak就是服务端/etc/rsyncd.conf里的配置
参考链接:
https://blog.csdn.net/gjwgjw1111/article/details/103515031
https://blog.csdn.net/jc_hook/article/details/126351788
rsync只是一次性同步,如果需要实时同步可以只用cron调度
参考链接:linux下cron周期性调度
rsync常见的报错:
http://t.zoukankan.com/zoe233-p-11972699.html
https://blog.51cto.com/gongxiaoyi/1825454
https://blog.csdn.net/qq_38483583/article/details/123608484
直接用命令行将一个服务器上的文件或者文件夹复制到另一台服务器上:
这种需要连接另外一个服务器,需要输入服务器的登录密码
scp -r /home/test1 zhidao@192.168.0.1:/home/test2
参考链接:
https://www.cnblogs.com/bingru/p/15817580.html