欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Linux 关于服务器与服务器之间的数据拷贝

程序员文章站 2022-05-09 13:47:24
...

1.scp

目的:一次只能实现一台服务器和另外一台服务器之间的数据拷贝

调用: scp -r /opt/module/ [email protected]主机ip:/opt

 

2 .rsync

目的:远程同步

调用:  rsync -rvl /opt/module [email protected]主机ip1:/opt/temp    ==>将本机的/opt/module目录同步到主机ip1的/opt/temp目录下

 

3. 编写集群分发脚本 xsyns 实现一台服务器与多台服务器之间的文件拷贝

#!/bin/sh
# 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if((pcount==0)); then
        echo no args...;
        exit;
fi

# 获取文件名称
p1=$1
fname=`basename $p1`
echo fname=$fname
# 获取上级目录到绝对路径
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir
# 获取当前用户名称
user=`whoami`
# 循环
for((host=1; host<=2; host++)); do
        echo $pdir/$fname [email protected]$host:$pdir
        echo ==================slave$host==================
        rsync -rvl $pdir/$fname [email protected]$host:$pdir
done
#Note:这里的slave对应自己主机名,需要做相应修改。另外,for循环中的host的边界值由自己的主机编号决定。

调用格式:xsync 文件名称

 

4 编写脚本 xcall 

目的:该脚本用于在所有主机上同时执行相同的命令。 

#!/bin/sh
pcount=$#
if((pcount==0));then
        echo no args...;
        exit;
fi
echo ==================master==================
[email protected]
for((host=1; host<=2; host++)); do
        echo ==================slave$host==================
        ssh slave$host [email protected]
done
#Note:这里的master和slave都是对应自己主机名,需要做相应修改。另外,for循环中的host的边界值由自己的主机编号决定。

记得:最后chmod a+x xcall 给文件添加执行权限即可。

5 SSH无密码登录

目的:远程登录别的主机,进行相应的操作

调用:ssh 另一台电脑的 ip 即可