当然可以!云主机文件拷贝是日常运维和开发中最常见的操作之一,根据你的使用场景和习惯,有多种方法可以实现。
下面我将从不同场景和不同操作系统的角度,为你详细介绍几种最主流、最实用的文件拷贝方法。
首先明确你的操作方向:
1、从本地计算机上传到云主机 (Local -> Cloud)
2、从云主机下载到本地计算机 (Cloud -> Local)
3、在两台云主机之间互相拷贝 (Cloud -> Cloud)
方法一:使用 SCP 命令 (安全、命令行)
scp
(Secure Copy) 是基于 SSH 的安全加密文件传输工具,是所有 Linux 和 macOS 用户的标配,Windows 10/11 也可以使用。
scp [可选参数] <源文件路径> <目标文件路径>
1、从本地上传到云主机
# 将本地的 /path/to/local/file.txt 上传到云主机的 /home/username/ 目录下 scp -i /path/to/your/private-key.pem /path/to/local/file.txt username@云主机IP地址:/home/username/
-i ...
指定你的私钥文件(如果使用密钥登录),如果是密码登录,可以去掉此参数,然后输入密码。
* 注意:
号,它是区分本地和远程路径的关键。
2、从云主机下载到本地
# 将云主机的 /home/username/data.log 下载到本地的当前目录 scp -i /path/to/your/private-key.pem username@云主机IP地址:/home/username/data.log .
* 最后的.
代表当前目录,你也可以指定其他本地路径,如~/Downloads/
。
3、递归拷贝整个目录(加-r
参数)
# 上传整个 project 文件夹到云主机的 /tmp/ 目录 scp -r -i /path/to/your/private-key.pem ./project username@云主机IP地址:/tmp/
4、在两台云主机之间拷贝
最直接的方法是从你的本地机器作为中转站,分别执行一次上传和下载,更高级的方法是使用ssh-agent
在一条命令中完成,但稍微复杂。
优点:安全、简单、所有系统通用、脚本友好。
缺点:无法实时同步,传输大量小文件时速度可能稍慢。
方法二:使用 SFTP 客户端 (安全、图形化)
如果你不习惯命令行,图形化的 SFTP (SSH File Transfer Protocol) 客户端是你的最佳选择,它的底层和 SCP 一样安全。
常用工具:
WinSCP (Windows)
FileZilla (跨平台Windows, macOS, Linux)
Termius (macOS) 或ForkLift (macOS)
MobaXterm (Windows,内置了SFTP功能)
操作步骤(以 FileZilla 为例):
1、打开 FileZilla。
2、填写连接信息:
主机你的云主机 IP 地址
用户名如ubuntu
,ec2-user
,root
等
密码如果你的登录方式(或密钥对需要密码)
端口22
(默认SSH端口)
3、快速连接:点击快速连接
。
4、首次连接信任:弹出主机密钥未知的对话框,勾选"始终信任此主机",点击"确定"。
5、开始拖拽:
* 左侧窗口是你的本地计算机文件。
* 右侧窗口是你的云主机文件。
直接拖拽文件或文件夹 between the two windows to upload or download.
优点:直观、易用、支持拖拽、可以方便地浏览两边文件系统。
缺点:不适合自动化脚本。
方法三:使用 rsync 命令 (高效、增量同步)
rsync
是一个更强大的工具,它不仅可以拷贝文件,还可以智能地同步文件,它的最大优点是增量同步——只传输文件中被修改的部分,大大提高了同步效率,特别适合备份或同步经常变动的大文件。
rsync [可选参数] <源路径> <目标路径>
1、同步本地目录到云主机(最常用)
rsync -avz -e "ssh -i /path/to/your/private-key.pem" ./local_project/ username@云主机IP地址:/path/to/remote_project/
-a
归档模式,保持所有文件属性,并递归同步目录。
-v
详细输出,让你看到同步过程。
-z
压缩传输,节省带宽。
-e
指定远程 shell 命令,这里用于指定私钥。
特别注意源路径.../local_project/
后面的/
很重要!有/
表示同步目录内的,没有/
则表示同步目录本身。
2、从云主机同步到本地(反向)
rsync -avz -e "ssh -i /path/to/your/private-key.pem" username@云主机IP地址:/path/to/remote_project/ ./local_project/
3、干跑模式(测试一下会同步什么)
rsync -avzn --delete ... # 加上n
参数
--delete
删除目标端有而源端没有的文件(保持严格一致)。使用前务必先干跑测试!
优点:增量同步,效率极高,非常适合备份和持续部署。
缺点:命令参数更复杂,需要小心使用。
Windows 云主机通常使用远程桌面 (RDP) 连接。
1、本地资源映射:
* 在连接之前,点击“显示选项” -> “本地资源” -> “更多...”。
* 勾上你希望映射到云主机的本地驱动器(C盘、D盘)。
* 连接后,在云主机的“文件资源管理器”中,你就能看到“其他”栏目下的本地驱动器,然后就可以像操作本地U盘一样直接拖拽文件。
2、剪贴板共享:
* 同样在“本地资源”中,确保“剪贴板”被勾选,这样你可以在本地和云主机之间复制粘贴文本和文件。
方法 | 适用场景 | 优点 | 缺点 |
SCP | 快速、单次的文件上传/下载;命令行环境 | 安全、简单、通用 | 无法增量同步 |
SFTP (图形化) | 不熟悉命令行的用户;需要可视化浏览文件 | 直观、易用、拖拽操作 | 不适合自动化 |
rsync | 定期备份、持续部署、同步大量文件 | 增量同步、效率极高、功能强大 | 命令稍复杂 |
RDP 映射 | Windows 云主机 | 极其方便,像使用U盘 | 仅限 Windows |
新手建议:
如果你是新手,从FileZilla 或 WinSCP 开始,最容易上手。
如果你已经熟悉命令行,SCP 是完成单次拷贝任务最快捷的方式。
如果你的工作是频繁同步代码或网站文件,请务必学会使用rsync。
希望这个详细的指南能帮助你顺利完成云主机的文件拷贝操作!
文章摘自:https://idc.huochengrm.cn/zj/17872.html
评论