当前位置: 首页 > news >正文

linux scp复制多层级文件夹到另一服务器免密及脚本配置

文章目录

  • 生成 SSH 密钥对
  • 将公钥复制到目标服务器
  • 验证免密登录
  • scp 多级文件夹复制脚本

生成 SSH 密钥对

在本地机器上,使用 ssh-keygen 命令生成 SSH 密钥对。打开终端并执行以下命令:

ssh-keygen -t rsa

按提示连续按回车键,默认会在 ~/.ssh 目录下生成两个文件:id_rsa(私钥)和 id_rsa.pub(公钥)。

将公钥复制到目标服务器

使用 ssh-copy-id 命令将公钥复制到目标服务器:

ssh-copy-id user@host

user:目标服务器账号
host:目标服务器IP
注意:该账号需要有root权限,否则不提权情况下只能复制到该账号的 home 目录下!
执行该命令后,会提示输入目标服务器的密码。输入正确密码后,公钥会被复制到目标服务器的 ~/.ssh/authorized_keys 文件中。

验证免密登录

执行脚本时,不再需要输入密码。

scp 多级文件夹复制脚本

#!/bin/bash

# 源目录
source_dir="/opt/data/model_train/storage/model-version"

# 目标服务器信息
target_server="root@127.0.0.1"
target_dir="/opt/data/model_train/storage/model-version"

# 递归处理源目录下的文件和目录
recursive_copy() {
    local source_item="$1"
    local relative_path="${source_item#$source_dir/}"
    local target_item="$target_server:$target_dir/$relative_path"
    local pure_target_item="${target_item#*:}"

    # 检查源项是文件还是目录
    if [ -f "$source_item" ]; then
        # 如果是文件,检查目标文件是否存在
        ssh $target_server "test -f $pure_target_item" < /dev/null
        if [ $? -ne 0 ]; then
            # 如果目标文件不存在,使用 scp 复制文件
            scp "$source_item" $target_item < /dev/null
            echo "Copied $source_item to $target_item"
        else
            echo "File $target_item already exists, skipping."
        fi
    elif [ -d "$source_item" ]; then
        # 如果是目录,在目标服务器上创建对应目录
        ssh $target_server "mkdir -p $pure_target_item" < /dev/null
        echo "Ensured directory $target_item exists"

        # 递归处理目录下的子项
        for sub_item in "$source_item"/*; do
            if [ -e "$sub_item" ]; then
                recursive_copy "$sub_item"
            fi
        done
    fi
}

# 开始递归处理源目录
for item in "$source_dir"/*; do
    if [ -e "$item" ]; then
        recursive_copy "$item"
    fi
done    
*********************************只要思想不滑坡,办法总比困难多*********************************

相关文章:

  • 数据库基础(聚合函数 分组 排序)
  • 大型语言模型的秘密:思考链长度与提示格式的魔力
  • mmaction2的mmcv依赖安装教程
  • 探究 CSS 如何在HTML中工作
  • 马拉车算法
  • 存储管理(一)
  • Flutter Autocomplete 从入门到进阶:打造智能输入体验的完整指南
  • 远程连接电脑
  • week2|机器学习(吴恩达)学习笔记
  • 微服务间通信
  • 畅捷通T+与吉客云数据集成案例解析
  • 直流分量的产生以及危害,THD总谐波失真度的定义,有哪些危害
  • 蓝桥杯 子2023
  • 博卡软件管理中心8:为美容美发行业量身打造的轻量级管理方案
  • ch05 课堂参考代码
  • Selenium Web自动化如何快速又准确的定位元素路径,强调一遍是元素路径
  • 【C#】Task 线程停止
  • 大模型在支气管扩张预测及治疗方案制定中的应用研究
  • Leetcode 组合总和 III
  • 计算机期刊征稿 | 计算机-网络系统:物联网系统架构、物联网使能技术、物联网通信和网络协议、物联网服务和应用以及物联网的社会影响
  • 长沙微网站制作/网站外包公司有哪些
  • 昆明网站建设技术公司/官网整站优化
  • 全国文明网联盟网站建设/网络舆情分析报告模板
  • 备案需要网站建设方案书/app软件推广怎么做
  • 人工客服外包/搜索引擎优化seo专员招聘
  • app与微网站的区别是什么/网站技术外包公司