scp
(secure copy)是一个基于 SSH (Secure Shell) 协议的命令行工具,用于在本地和远程主机之间安全地复制文件。它利用 SSH 提供的加密和身份验证功能,确保在传输过程中数据的安全性。
基本用法
-
从本地复制到远程服务器:
scp /path/to/localfile username@remotehost:/path/to/remotefile
这个命令将本地文件
localfile
复制到远程主机remotehost
上的指定位置。 -
从远程服务器复制到本地:
scp username@remotehost:/path/to/remotefile /path/to/localfile
这个命令将远程主机上的文件
remotefile
复制到本地。 -
指定使用的密钥文件:
scp -i /path/to/private_key /path/to/localfile username@remotehost:/path/to/remotefile
使用
-i
选项指定私钥文件,用于身份验证。 -
使用不同的端口:
scp -P 2222 /path/to/localfile username@remotehost:/path/to/remotefile
使用
-P
(注意是大写的 'P')指定非默认的 SSH 端口。 -
递归复制整个目录:
scp -r /path/to/localdir username@remotehost:/path/to/remotedir
使用
-r
递归地复制目录及其内容。
高级用法
-
复制并保留文件属性:
scp -p /path/to/localfile username@remotehost:/path/to/remotefile
使用
-p
保留原始文件的修改时间和访问权限。 -
限制带宽使用:
scp -l 1024 /path/to/localfile username@remotehost:/path/to/remotefile
使用
-l
限制带宽使用,单位为 Kbit/s。 -
通过中间主机复制文件: 首先,使用 SSH 创建到中间主机的隧道:
ssh -L localPort:remotehost:remotePort intermediatehost
然后,通过该隧道复制文件:
scp -P localPort /path/to/localfile username@localhost:/path/to/remotefile
衍生用法
-
复制文件到多个远程位置: 这需要在 shell 中使用循环,例如:
for host in host1 host2 host3; do scp /path/to/localfile username@$host:/path/to/remotefile done
这将文件复制到多个主机。
-
从远程服务器复制文件到另一个远程服务器:
scp username1@remotehost1:/path/to/file username2@remotehost2:/path/to/destination
这需要两台远程主机间能够进行 SSH 通信。
-
使用
scp
在脚本中自动化文件传输:scp
常常用于脚本中以自动化文件备份和迁移任务。 -
结合
find
和xargs
进行批量复制: 使用find
命令查找特定类型的文件并使用scp
进行复制:
find /path/to/source -name "*.txt" -print0 | xargs -0 -I {} scp {} username@remotehost:/path/to/destination
文章来源:https://www.toymoban.com/news/detail-789310.html
scp
是一个非常强大的工具,用于在远程主机之间安全地传输文件。掌握它的使用,尤其是在网络管理和自动化脚本编写中,非常有用。由于它依赖于 SSH,确保 SSH 连接是安全的对于保护数据安全至关重要。文章来源地址https://www.toymoban.com/news/detail-789310.html
到了这里,关于33. 常用shell之 scp - 安全复制文件 的用法和衍生用法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!