批量配置Linux ~/.bash_profile

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

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/

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

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

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

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

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

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 协议本身存在已知漏洞,建议优先使用 rsyncsftp

替代工具

  • 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
do
  echo "=======sync $host_name========="
#复制本地文件 到远程服务器
scp ~/.bash_profile  $target_user@$host_name:/root/.bash_profile
 echo "======= 加载 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 标准化、可维护性强
相关推荐
张洛闻Eren5 分钟前
MySQL 维护稳定系统【MySQL第二课】
linux·数据库·mysql·云原生
ltl27 分钟前
Linux 异步 I/O:epoll 与 io_uring 对比
linux
ltl34 分钟前
压缩算法工程实践:吞吐、比率与 CPU 权衡
linux
fiveym1 小时前
01 - iPXE + Clonezilla 网络装机原理解析
linux·运维·服务器·网络
虎头金猫2 小时前
如何在群晖NAS上通过Docker部署CloudSaver?群晖部署CloudSaver教程|聚合资源搜索并实现远程访问
运维·服务器·网络·python·docker·容器·pandas
反转180度2 小时前
Qt 6 + C++17 实现 SFTP 批量部署:工业设备运维工具实战解析
运维·c++·qt
雨辰AI3 小时前
RAG 知识库搭建:基于人大金仓构建信创运维问答机器人|全栈国产化落地完整版
运维·ai·机器人·ai编程
-今昭-3 小时前
Ansible
linux·运维·ansible
星野川崎2063 小时前
电商多店运维:云机长期挂机频繁掉线、账号无故风控原因剖析与解决方案
大数据·运维·云计算·电商
mounter6254 小时前
MACsec 全景解析:从技术演进、核心架构到 DPU 硬件卸载与 K8s 大规模调度实战
linux·kubernetes·linux kernel·kernel·macsec