批量配置Linux ~/.bash_profile

embedded/2025/3/31 5:35:11/

前提是服务器已配置好免密登录

scp(Secure Copy)

 scp(Secure Copy)是 Linux 中基于 SSH 协议的安全文件传输命令,用于在本地主机和远程主机之间(或两个远程主机之间)复制文件或目录。

基本语法

scp [选项] 源文件 目标路径 

选项说明
-P 端口指定 SSH 端口(默认 22)
-p保留文件修改时间、权限等属性
-C启用压缩传输(节省带宽)
-q静默模式(不显示进度和警告)
-v显示详细传输过程(调试用)
-l 限速限制带宽(单位:Kbit/s)

 示例

1. 复制文件到远程主机的指定端口(非默认22)

scp -P 2222 file.txt user@example.com:/tmp/ 

2. 保留文件属性并压缩传输 

scp -Cp ~/backup.tar.gz user@example.com:/backup/ 

 3. 限速传输(避免占用过多带宽)

 scp -l 800 largefile.iso user@example.com:/downloads/

4. 复制远程主机的隐藏文件 

 scp user@example.com:"/home/user/.*" ./local_folder/

 注意事项

 

  1. 路径格式

    • 本地路径:/path/to/file

    • 远程路径:user@host:/path/to/file

  2. 特殊字符处理

    • 文件名含空格或特殊字符时,用引号包裹路径:

      scp "user@example.com:'file with space.txt'" ./
  3. SSH 密钥认证

    • 若已配置 SSH 免密登录,scp 无需输入密码。

  4. 安全性

    • scp 基于 SSH,默认加密传输,但 SCP 协议本身存在已知漏洞,建议优先使用 rsync 或 sftp

替代工具

  • rsync:更高效的文件同步工具(支持增量传输)。

  • sftp:交互式文件传输工具(类似 FTP)。

  • rsync 示例

    rsync -avz -e "ssh -p 2222" /本地/目录 user@example.com:/远程/路径

 source

 source 是 Linux/Unix 系统中的一个 Shell 内置命令,用于在当前 Shell 环境中执行指定的脚本文件(而不是启动新的子 Shell)。它是 Bash、Zsh 等 Shell 提供的一种加载环境变量或函数的方式。

加载环境变量配置文件

修改profile 后,使其立即生效:

source ~/.bash_profile

编写shell脚本

vim sync_files.sh

bash">echo "=======sync files ========="
target_user=root
for  host_name in bigdata113 bigdata114 bigdata112
doecho "=======sync $host_name========="
#复制本地文件 到远程服务器
scp ~/.bash_profile  $target_user@$host_name:/root/.bash_profileecho "======= 加载 bash_profile========="
#加载环境变量配置文件
ssh  $target_user@$host_name " source ~/.bash_profile "  #对所有新会话生效
done

总结

场景方法特点
临时执行命令ssh user@host "source file && command"环境变量仅本次 SSH 会话有效
永久修改环境变量写入配置文件后 source对所有新会话生效
需要 sudo 权限sudo -i 配合 source保留 root 环境变量
批量管理多台主机使用 Ansible标准化、可维护性强

http://www.ppmy.cn/embedded/177381.html

相关文章

std::string不是直接的 DATETIME类型,因此在插入数据库时,通常可以直接将这个字符串传递给数据库,它会自动将其转换为 DATETIME类型

将 current_time 转换为数据库中的 DATETIME 类型,那么首先需要确保 current_time 的格式适应数据库的日期时间类型。对于 MySQL,DATETIME 类型通常期望字符串格式为 YYYY-MM-DD HH:MM:SS,这个格式与我们通过 std::put_time 获取的字符串格式…

uniapp编译小程序报错,v-for中,非 h5 平台 :key 不支持表达式 chart+‘_‘

在 UniApp 里,当使用 v-for 指令进行列表渲染时,为了提升渲染性能与准确性,需要给每个列表项绑定一个唯一的 :key。不过在非 H5 平台,key 不支持表达式,只能是一个简单的值。下面为你提供几种解决该报错的办法&#xf…

NLP高频面试题(十九)——VLLM推理加速原理

随着大语言模型的快速发展,其推理效率逐渐成为应用落地的关键瓶颈。vLLM作为近年来备受关注的LLM推理框架,以其高效的推理性能脱颖而出。本文将深入浅出地介绍vLLM背后的两大核心技术:Continuous Batching 和 PagedAttention。 一、Continuo…

DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)之添加行拖拽排序功能示例6,TableView16_06 分页表格拖拽排序

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 Deep…

渗透测试过-关于学习Token、JWT、Cookie等验证授权方式的总结

关于学习Token、JWT、Cookie等验证授权方式的总结 目录 一、为什么Cookie无法防止CSRF攻击,而Token可以? 二、为什么无论采用Cookie-session的方式,还是Token(JWT)的方式,在一个浏览器里,同一个…

计算机视觉算法实战——病变检测:从原理到应用

✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ ​​​​ ​​​​​​​​​​​​ ​​​​ 1. 计算机视觉在病变检测领域的概述 计算机视觉在医疗影像分析中的应用已经成为人工智能最具…

蓝桥杯 最大区间

原题目链接 问题描述 给定一个长度为 n 的序列 A_i,求一对 L, R 使得: (R - L 1) * min(A_L, A_{L1}, ..., A_R)的值尽可能大,其中 min 表示该区间中的最小值。 你只需要输出该表达式的最大值,无需输出具体的 L 和 R。 输入格…

flutter 获取设备的唯一标识

插件 device_info_plus | Flutter packageFlutter plugin providing detailed information about the device (make, model, etc.), and Android or iOS version the app is running on.https://pub.dev/packages/device_info_plus安卓 androidInfo.serialNumber serialNum…