方法一:scp(secure copy)安全拷贝
(1)scp定义:
scp可以实现服务器与服务器之间的数据拷贝。( from serverA to serverB )
1、scp方法
最简单的方法就是scp,可以理解为ssh管道下的cp命令。
把当前一个文件copy到远程服务器上:
scp /home/a.txt root@192.168.0.8:/home/root
然后会提示输入192.168.0.8的root密码,接着就开始复制传输了。
把远程主机的 文件 copy到当前主机:
scp root@192.168.0.8:/home/b.txt /home/
把远程主机的 文件夹 copy 到当前主机
scp -r root@192.168.0.8:/home/ /root/home2
scp -P 44444 -r zzd@58.213.425.xx:/data/wenshu/case_parse_v1_split_zip /home/
1.2 scp命令参数
基本语法:
scp 本地用户名@IP地址:文件名1 远程用户名@IP地址:文件名2
注:[本地用户名@IP地址:] 可以不输入,可能需要输入远程用户名所对应的密码.
常用的几个参数:
-v 和大多数linux命令中的-v意思一样,用来显示进度.可以用来查看连接,认证,或是配置错误.
-C 使能压缩选项.
-P 选择端口.注意-p已经被rcp使用.
-4 强行使用IPV4地址.
-6 强行使用IPV6地址.
扩展:
linux 之间复制文件,两台Linux服务器之间复制文件_wengmlang的博客-CSDN博客
方法二:rsync远程同步工具
(1)rsync定义:
rsync主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点。
rsync和scp区别:用rsync做文件的复制要比scp的速度快,rsync只对差异文件做更新。scp是把所有文件都复制过去。
(2)基本语法
rsync -rvl dir/dname root@xxxxxx002:newdir/newname
命令 选项参数 要拷贝的文件路径/名称 目的用户@主机:目的路径/名称
选项参数说明
选项 功能
-r 递归
-v 显示复制过程
-l 拷贝符号连接
方法三:编写集群分发脚本 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 $user@slave$host:$pdir
echo ==================slave$host==================
rsync -rvl $pdir/$fname $user@slave$host:$pdir
done
#Note:这里的slave对应自己主机名,需要做相应修改。另外,for循环中的host的边界值由自己的主机编号决定。
调用格式:xsync 文件名称
方法四:编写脚本 xcall
目的:该脚本用于在所有主机上同时执行相同的命令。
#!/bin/sh
pcount=$#
if((pcount==0));then
echo no args...;
exit;
fi
echo ==================master==================
$@
for((host=1; host<=2; host++)); do
echo ==================slave$host==================
ssh slave$host $@
done
#Note:这里的master和slave都是对应自己主机名,需要做相应修改。另外,for循环中的host的边界值由自己的主机编号决定。