1. scp
- scp(secure copy)可以实现服务器与服务器之间的数据拷贝
scp -r $pdir/$fname $user@$host:$pdir/$fname
$ scp -r /opt/app/jdk1.8.0_212 root@hadoop102:/opt/app
$ scp -r root@hadoop101:/opt/app/hadoop-3.1.3 /opt/app
$ scp -r root@hadoop101:/opt/app/* root@hadoop103:/opt/app
2. rsync
- 远程同步工具,主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点
rsync -av $pdir/$fname $user@$host:$pdir/$fname
$ rsync -av /opt/app/hadoop-3.1.3/ root@hadoop102:/opt/app/hadoop-3.1.3/
3. xsync
$ vi /usr/local/bin/xsync
#!/bin/bash
# 1.判断参数个数
if [ $# -lt 1 ]
then
echo Not Enough Arguement!
exit;
fi
# 2.遍历集群所有机器
for host in hadoop101 hadoop102 hadoop103
do
echo ==================== $host ====================
# 3.遍历所有目录,挨个发送
for file in $@
do
# 4.判断文件是否存在
if [ -e $file ]
then
# 5.获取父目录
pdir=$(cd -P $(dirname $file); pwd)
# 6.获取当前文件的名称
fname=$(basename $file)
ssh $host "mkdir -p $pdir"
rsync -av $pdir/$fname $host:$pdir
else
echo $file does not exists!
fi
done
done
$ chmod +x /usr/local/bin/xsync
$ xsync /etc/profile.d/my.sh
4. ssh 免密登录

$ ssh-keygen -t rsa
$ ssh-copy-id hadoop101
$ ssh-copy-id hadoop102
$ ssh-copy-id hadoop103
$ ll ~/.ssh
-rw-------. 1 root root 1188 Jul 18 13:25 authorized_keys # 存放授权过的免密登录服务器公钥
-rw-------. 1 root root 1675 Jul 18 13:23 id_rsa # 生成的私钥
-rw-r--r--. 1 root root 396 Jul 18 13:23 id_rsa.pub # 生成的公钥
-rw-r--r--. 1 root root 558 Jul 18 12:55 known_hosts # 存放ssh访问过的服务器的公钥