rsync传输

发布时间 2023-11-20 21:39:05作者: 不爱学的李泽信

rsync传输

1.本地传输方式

# 1.普通传输
rsync -avz 本地文件路径 目标端路径

# 2.排除文件或目录传输,需要相对路径
rsync -avz --exclude '需排除的文件或目录' 本地路径 目标端路径

2. 远程传输

# 1.普通传输
rsync -avz 文件或目录  user@ip:/路径

# 2.排除文件或目录传输,需要绝对路径
rsync -av --exclude '需排除的文件或目录' 本地文件路径 user@ip:目标端路径

3. 传输脚本

# 先做免密,建议将目标端加入本端hosts文件下
# 1.生成公钥和私钥
ssh-keygen -t rsa

# 2.将公钥拷贝到需要免密登录的目标点
ssh-copy-id 目标端

#!/bin/bash

#1. 判断参数个数
if [ $# -lt 1 ]
then
    echo Not Enough Arguement!
    exit;
fi

#2. 遍历集群所有机器
for host in test2
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