美文网首页
rsync 使用ssh远程命令拉取 和 上传 远程服务器文件到本

rsync 使用ssh远程命令拉取 和 上传 远程服务器文件到本

作者: 阿然学编程 | 来源:发表于2023-07-12 10:44 被阅读0次
  • 安装rsync (一般服务器上应该自带的有rsync ,可使用rsync查看)
yum install rsync

# sudo yum install rsync
  • 安装sshpass (这个要安装可以实现自动输入ssh密码,无需手动输入)
yum install sshpass

# sudo yum install sshpass
  • /www/wwwroot/test新建r_test.sh脚本文件
#!/bin/bash

# 设置SSH远程服务器的相关信息
REMOTE_SERVER="localhost"
REMOTE_PORT=22 #SSH端口
REMOTE_USERNAME="ssh用户名"
REMOTE_PASSWORD="ssh密码"
# 远程服务器文件夹
REMOTE_DIRECTORY="/www/wwwroot/test"

# 设置本地目标文件夹
LOCAL_FOLDER="/www/wwwroot/backup"

# 拉取下载:true,上传远程:false
IS_DW=true # 默认:拉取

# 设置要跳过的文件和文件夹
SKIP_DIRS=("log" "cache")  # 要跳过的文件夹名称列表
SKIP_EXT=(".log" ".tmp")  # 要跳过的文件扩展名列表

EXCLUDE_DIRS=""
for dir in "${SKIP_DIRS[@]}"; do
  EXCLUDE_DIRS+="--exclude=${dir}/ "
done

EXCLUDE_EXT=""
for ext in "${SKIP_EXT[@]}"; do
  EXCLUDE_EXT+="--exclude=*${ext} "
done

mkdir -p ${LOCAL_FOLDER}

echo $EXCLUDE_DIRS
echo $EXCLUDE_EXT

# rsync命令
# 判断是拉取下载还是上传
if [[ ${IS_DW} == true ]]; then
    # 从远程服务器下载文件到本地
    sshpass -p ${REMOTE_PASSWORD} rsync -avzP --delete --ignore-existing ${EXCLUDE_DIRS} ${EXCLUDE_EXT} -e "ssh -p ${REMOTE_PORT}" "${REMOTE_USERNAME}@${REMOTE_SERVER}:${REMOTE_DIRECTORY}/" ${LOCAL_FOLDER}

    RES="下载完成!";

else
    # 将本地文件上传至远程服务器
    sshpass -p ${REMOTE_PASSWORD} rsync -avzP --delete --ignore-existing ${EXCLUDE_DIRS} ${EXCLUDE_EXT} -e "ssh -p ${REMOTE_PORT}" "$LOCAL_FOLDER/" "${REMOTE_USERNAME}@${REMOTE_SERVER}:${REMOTE_DIRECTORY}"

    RES="上传完成!";

fi

echo ${RES}

exit
  • 命令行执行脚本
cd /www/wwwroot/test
./r_test.sh
  • 查看本地拉取下载的结果


    image.png
    image.png
  • 2、直接使用命令行,不写脚本
# --ignore-existing 参数表示跳过目标文件夹中已经存在的文件,不进行传输。
rsync -avzP --ignore-existing -e 'ssh -p 22' /www/wwwroot/record.com  root@远程服务器IP:/data/www/wwwroot/

# --exclude 参数表示要排除的文件夹或文件
rsync -avzP --ignore-existing --exclude='tmp/' --exclude='log/' -e 'ssh -p 22' /www/wwwroot   root@远程服务器IP:/www/wwwroot/
image.png

相关文章

  • sshpass

    sshpass 应用范围:可以在命令行直接使用密码来进行远程连接和远程拉取文件 示例:从服务器1上拷贝文件到服务器...

  • mac 连接服务器

    使用ssh连接远程主机 使用scp命令实现上传下载 从服务器上下载文件 上传本地文件到服务器 从服务器下载整个目录...

  • mac如何连接服务器,上传文件到服务器

    使用ssh连接远程主机 使用scp命令实现上传下载 从服务器上下载文件 上传本地文件到服务器 从服务器下载整个目录...

  • 使用OpenSSH登录远程主机

    常用的命令行登录远程主机: 使用SSH密钥登录: 生成密钥文件: 上传.pub内容到远程主机的~/.ssh/aut...

  • rsync 无密码 传输

    1.通过ssh执行rsync(需要密码) 通过ssh帐户(需要密码)执行rsync,将文件同步镜像到远程服务器。 ...

  • scp 上传 下载 文件

    linux: scp 上传 下载 文件 linux 中的ssh命令: scp 可以用来上传本地文件到远程服务器 或...

  • MAC实用SSH连接远程服务器,并实现文件上传下载

    使用ssh连接远程主机 使用scp命令实现上传下载 从服务器上下载文件 例如:scp root@123.207.1...

  • rsync 使用

    rsync 支持本地和跨服务器的备份工具 安装 本地备份 远程备份 除了备份还可以拉取文件 --delete 参数...

  • 远程连接

    连接另一台linux服务器使用ssh命令 ssh root@192.168.25.128 向远程服务器传送文件使用...

  • mac 连接远程服务器以及文件操作

    首先进入到root路径下sudo -i然后输入以下命令连接到远程服务器ssh ip地址 文件上传和下载Demo:下...

网友评论

      本文标题:rsync 使用ssh远程命令拉取 和 上传 远程服务器文件到本

      本文链接:https://www.haomeiwen.com/subject/qjtpudtx.html