拷贝文件

scp全量copy
rsync增量copy

一、SCP:

推方式:

scp -P52113 /etc/hosts root@172.16.1.41:/data   #大P是更改端口

scp -P52113 -rp /etc/hosts root@172.16.1.41:/data   #拷贝目录并保持文件属性

拉方式:

#将远端服务器172.16.1.31下的/etc/hosts文件拷贝到本地

scp -P52113 -rp  root@172.16.1.31:/etc/hosts  ./

二、 rsync

参数:

https://www.cnblogs.com/subsir/articles/2565373.html

两台copy的机器都要安装
yum install -y rsync
-a 归档copy,增量copy
-v 看过程

-W, --whole-file 拷贝文件,不进行增量检测

-z  传输过程压缩

--exclude 用来排除那些不希望传输的文件
--delete 删除那些DST中SRC没有的文件

-e, --rsh=COMMAND 指定使用rsh、ssh方式进行数据同步

远程拷贝:

推:

#把/opt目录拷贝到10.0.0.31的/tmp下.

rsync  -avz  /opt  root@10.0.0.31:/tmp/

rsync -av /kkb/soft/  node02:/kkb/soft/

pull:

rsync -avz root@10.0.0.31:/tmp/  /opt/

rsync -azuq -e ssh root@10.52.12.116:/root/airflow/logs/ /root/airflow/logs/ --exclude 'scheduler'  --exclude 'scheduler_failover'

#增量备份:
rsync -avW --progress ./zos-release --exclude=.git zosroot@54.95.72.110:~/
rsync -avW --progress ./test zosroot@13.59.30.234:~/

例子:

1/ 集群之间节点间文件同步

mkdir /home/username/bin

cd /home/username/bin

chmod 777 xsync

vim xsync

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

#2 获取文件名称
p1=$1
fname=`basename $p1`

echo $fname

#3 获取上级目录到绝对路径
pdir=`cd -P $(dirname $p1); pwd`
echo $pdir

#4 获取当前用户名称
user=`whoami`

#5 循环
for((host=1; host<4; host++)); do
       echo ------------------- node0$host --------------
       rsync -av $pdir/$fname $user@node0$host:$pdir
done
View Code
原文地址:https://www.cnblogs.com/hongfeng2019/p/11388635.html