Linux 下的 rsync 详细部署和免密码同步

最近在做同步的问题上用到了 rsync 一款强大的同步备份工具。然后遇到了一些问题:安装完后,同步需要密码,可我想不需要密码,因为我跑的是内部环境。然后去查了度娘,google,都是些什么乱七八糟的,无法解决我的问题。最后汇总思路后就解决了

rsync 安装

具体怎么安装不做累述。 安装完后linux 运行下 rsync 会有一大串的命令提示,那就安装成功了。

运行 rsync

rsync –daemon

以 daemon 的方式去运行(目前我是这样运行的)
ps -ef | grep rsync 命令可以看到运行状态

Linux 下的 rsync 详细部署和免密码同步

然后 去看下rsync的端口一般是默认的 873
netstat -ntlp

Linux 下的 rsync 详细部署和免密码同步

然后我们telnet 去检测下端口状态
命令 : telnet 192.168.0.1 873 (ip 请自行更换)
Linux 下的 rsync 详细部署和免密码同步

端口通过,后面的30.0或者是其他的什么31.0都不用管。

到了这一步才算开启,

不过其中可能需要运行下

/etc/init.d/xinetd start

以xinetd 来运行,两种方式都可以。

如果端口没有通过,请检查下防火墙。

service iptables stop
vim /etc/sysconfig/iptables
-A INPUT -m state –state NEW -m tcp -p tcp –dport 873 -j ACCEPT
service iptables restart

上面的命令运行873端口通过防火墙

然后上面所有状态正常,下面的步骤开始设置免密码(上面已经可以开始正常同步,不过同步过程需要密码)

因为要通过 ssh 去连接,所以,我们需要一份公共的 ssh**

A 主机文件同步到 B 主机上,则我们B主机需要A主机的**。

ssh**

B:主机

ps 以下操作可以不需要
groupadd -g 1212 adm
useradd -m -s /bin/bash -g 1212 -u 1212 adm
mkdir /home/adm/.ssh
chown adm:adm /home/adm/.ssh
chown adm:adm /usr/test
上面的只是添加用户和给目录权限

A:主机

ssh-******
然后一路回车键
Your identification has been saved in /usr/id_dsa
Your public key has been saved in /usr/id_dsa.pub

A主机生成了两份**,第一个 id_dsa 是私钥 id_dsa.pub是公钥
我们把公钥拷贝到B主机的 用户目录的 .ssh 下,这里我是拷贝到的/root/.ssh/

注意:这边因为你后面要同步的时候会去对应目录的.ssh下找公钥,所以,公钥要放在你操作的用户上(目前是B主机的/root/.ssh/上)。

B主机目录结构
Linux 下的 rsync 详细部署和免密码同步

注意看下权限,这里的权限都是 600

具体怎么拷贝,看你喜欢,这个过程不用纠结

还没有结束 !!!!!!!!!!!!!!!!

然后我们进入B主机 /root/.ssh/ 进行一下操作

cat rsync_id_dsa.pub > authorized_keys

把公钥输出到 authorized_keys 上,这是我们需要key

注意下用户组,必须是和你相对应的

OK,到这里就可以正式结束了,然后就可以去同步了,不需要密码。

Linux 下的 rsync 详细部署和免密码同步