0


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 连接是安全的对于保护数据安全至关重要。

标签: 安全 网络 服务器

本文转载自: https://blog.csdn.net/WQY867047910/article/details/135085705
版权归原作者 三水青一人尤 所有, 如有侵权,请联系我们删除。

“33. 常用shell之 scp - 安全复制文件 的用法和衍生用法”的评论:

还没有评论