linux系统同步分发xsync配置
1.在本地的/etc/hosts文件中,配置要同步分发的服务的IP别名。
2.配置免密登录
2.1生成rsa密钥
使用命令ssh-keygen 生成rsa密钥,配置信息直接回车即可, 生成的密钥默认在当前用户主目录的.ssh目录下。
密钥文件有两个:
- id_rsa 存放着私钥
- id_rsa.pub 存放着公钥
命令执行结果如下:
2.2 copy机器自身公钥到目标机器
2.2.1 在目标机器(server2,server3)的用户主目录创建.ssh目录
mkdir -p ~/.ssh
2.2.2 在本地执行远程拷贝命令
cd /root/.ssh
scp id_rsa.pub root@server2:/root/.ssh/authorized_keys
scp id_rsa.pub root@server3:/root/.ssh/authorized_keys
2.3 远程登录测试
ssh root@server2
3.xsync脚本配置和使用
3.1xsync是对rsync脚本的二次封装,所以需要先下载rsync命令。
使用以下命令即可安装
yum install -y rsync
3.2添加xsync脚本
在用户主目录的bin目录下添加脚本(我在是/usr/local/bin新建的xsync),脚本内容如下
#!/bin/sh
# 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if((pcount!=4)); then
echo Usage: $0 filename servername startno endno
exit;
fi
# 获取文件名称
p1=$1
fname=`basename $p1`
echo fname=$fname
# 获取上级目录到绝对路径
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir
# 获取当前用户名称
user=`whoami`
# 获取hostname及起止号
slave=$2
startline=$3
endline=$4
# 循环
for((host=$startline; host<=$endline; host++)); do
echo $pdir/$fname $user@$slave$host:$pdir
echo ==================$slave$host==================
rsync -rvl $pdir/$fname $user@$slave$host:$pdir
done
该脚本经过修改,需要携带4个参数,分别是
filename 待发送的文件或目录名
servername 服务器前缀名
startno 服务器编号起始编号
endno 服务器编号终止编号
3.3 赋予xsync权限
chmod 777 xsync
3.4.测试xsync
以下是把本地/opt/1.txt文件同步到server2和server3的同目录下
xsync /opt/1.txt server 2 3