33. 常用shell之 scp - 安全复制文件 的用法和衍生用法

scp(secure copy)是一个基于 SSH (Secure Shell) 协议的命令行工具,用于在本地和远程主机之间安全地复制文件。它利用 SSH 提供的加密和身份验证功能,确保在传输过程中数据的安全性。

基本用法

  1. 从本地复制到远程服务器:

    scp /path/to/localfile username@remotehost:/path/to/remotefile

    这个命令将本地文件 localfile 复制到远程主机 remotehost 上的指定位置。

  2. 从远程服务器复制到本地:

    scp username@remotehost:/path/to/remotefile /path/to/localfile

    这个命令将远程主机上的文件 remotefile 复制到本地。

  3. 指定使用的密钥文件:

    scp -i /path/to/private_key /path/to/localfile username@remotehost:/path/to/remotefile

    使用 -i 选项指定私钥文件,用于身份验证。

  4. 使用不同的端口:

    scp -P 2222 /path/to/localfile username@remotehost:/path/to/remotefile

    使用 -P(注意是大写的 'P')指定非默认的 SSH 端口。

  5. 递归复制整个目录:

    scp -r /path/to/localdir username@remotehost:/path/to/remotedir

    使用 -r 递归地复制目录及其内容。

高级用法

  1. 复制并保留文件属性:

    scp -p /path/to/localfile username@remotehost:/path/to/remotefile

    使用 -p 保留原始文件的修改时间和访问权限。

  2. 限制带宽使用:

    scp -l 1024 /path/to/localfile username@remotehost:/path/to/remotefile

    使用 -l 限制带宽使用,单位为 Kbit/s。

  3. 通过中间主机复制文件: 首先,使用 SSH 创建到中间主机的隧道:

    ssh -L localPort:remotehost:remotePort intermediatehost

    然后,通过该隧道复制文件:

    scp -P localPort /path/to/localfile username@localhost:/path/to/remotefile

衍生用法

  1. 复制文件到多个远程位置: 这需要在 shell 中使用循环,例如:

    for host in host1 host2 host3; do scp /path/to/localfile username@$host:/path/to/remotefile done

    这将文件复制到多个主机。

  2. 从远程服务器复制文件到另一个远程服务器:

scp username1@remotehost1:/path/to/file username2@remotehost2:/path/to/destination

这需要两台远程主机间能够进行 SSH 通信。

  1. 使用 scp 在脚本中自动化文件传输: scp 常常用于脚本中以自动化文件备份和迁移任务。

  2. 结合 findxargs 进行批量复制: 使用 find 命令查找特定类型的文件并使用 scp 进行复制:

find /path/to/source -name "*.txt" -print0 | xargs -0 -I {} scp {} username@remotehost:/path/to/destination

scp 是一个非常强大的工具,用于在远程主机之间安全地传输文件。掌握它的使用,尤其是在网络管理和自动化脚本编写中,非常有用。由于它依赖于 SSH,确保 SSH 连接是安全的对于保护数据安全至关重要。

  • 15
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值