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