环境:
二台主机:pc1:risesmbserver ip:192.168.0.18
SSHD端口默认为22,最好开启
新增SSHD端口4954
PC2:risesmbback ip:192.168.0.19
SSHD端口默认为22,最好开启
新增SSHD端口1103
一.pc1数据同步到pc2上
1.客户端和服务端增加sshd端口的方法:
vim /etc/ssh/sshd_config
port 22 前面的#去掉
下一行添加 Port 1103
....
2.客户端和服务端重启sshd服务
service sshd restart
方法:
同步文件
使用默认端口把pc1的/home/123下的文件拷贝到远程的pc2的/home/123下
rsync -avPz /home/123 192.168.0.19:/home/123 输入pc2的密码即可同步
如果pc1更新了文件,pc2如何同步,使用u参数即可把更新的内容同步
rsync -avPzu /home/xingzheng 192.168.0.19:/home/xingzheng 输入pc2的密码即可同步
二.rsync配合计划任务来实现自动同步数据
在配置服务器之前要先生成密钥
1.服务器操作:
cd /root/.ssh
ssh-keygen -t rsa,生成密钥如下:
输入三次回车,密码设置为空
2.拷贝文件
scp id_rsa.pub [email protected]:/root/.ssh/authorized_keys
输入密码:xxxx
3.客户端操作
cd /root/.ssh
ssh-keygen -t rsa,生成密钥如下:
输入三次回车,密码设置为空
4.拷贝文件
scp id_rsa.pub [email protected]:/root/.ssh/authorized_keys
输入密码:xxxx
5.服务端:
服务端:vi /etc/sery.pass
输入内容:
root:xxxx (用户名:密码)
文件设置权限:
chmod 600 /etc/sery.pass
6.客服端:
vi /etc/sery_client.pass
输入内容
xxxx(密码)
文件设置权限:
chmod 600 /etc/sery_client.pass
7.以下为服务端操作
vi /etc/rsyncd.conf
输入内容
[global]
uid = root #root用户访问(我这里用ROOT用户,也可以用其他新建的用户)
gid = root #root组用户访问
use chroot = no #不能使用chroot
max connections = 10 #最大连接数
list = yes #允许列出文件清单
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsyncd.lock
log file = /var/log/rsyncd.log
hosts allow = 192.168.0.19 #只允许这个主机访问
[data]
path = /webapps/IDManage #发布的路径
ignore errors
read only = yes #只读
auth users = root #认证用户为root
secrets file = /etc/sery.pass #密码文件
8.启动文件
rsync --daemon --config=/etc/rsyncd.conf
9.查看进程
ps -ef |grep rsync
10.查看
yum install -y lsof
vim /etc/ssh/sshd_config可以查看开启的端口
lsof -i:1103
11.客户端操作
yum install -y telnet
telnet 192.168.0.18 1103
按ctrl+]即可进入Telnet,按q可以退出
12.服务端操作,把rsync加入自动启动
echo "/usr/bin/rsync --daemon --config=/etc/rsyncd.conf" >>/etc/rc.local
13.配置客户端
只要安装rsync软件
三.如何自实rsync客户端自动与rsync服务器端同步呢?这里我们用到计划任务命令:crontab;
1.服务端做一个shell脚本
vi /tmp/rsyncd.sh
#!/bin/bash
remotedir=/home/soft/ #备份到远程主机的目录
basedir=/home/soft/ # 本地需要备份的目录
host=192.168.0.19 #备份到远程主机
id=root
rsync -avPu -e ssh $basedir ${id}@${host}:${remotedir}
2.设置 crontab -e计划任务
每周一运行一次计划任务
0 9 * * 1 /tmp/rsyncd.sh
每一分钟运行一次计划任务
*/1 * * * * /tmp/rsyncd.sh