有时我们会需要将一个服务器上的文件传到另一台服务器上。如果用Filezilla、Xftp等下载到本地再上传,不仅麻烦,速度也慢,还容易断点。
让我们试试用scp
指令行来实现。
1. 从当前服务器发送
假设我们要往另一个服务器发送某文件夹local_folder
Step1 准备工作
- 知道对方服务器主机地址(如
100.123.456.789
)和用户名(如usr
) 确保接受方文件夹(如
target_folder
)有写入权限
[xxxxx/home/]$ ll
drwxr-xr-x 2 usr target_folder# 没有就添加
[xxxxx/home/]$ chmod o+w target_folder
[xxxxx/home/]$ ll
drwxr-xrwx 2 usr target_folder
Step 2 发送
指令的顺序是:发送方在前,接收方在后scp -r path/to/local_folder usr@100.123.456.789:/path/to/target_folder
scp
即secure copy,是Linux 系统下基于ssh登陆进行安全的远程文件拷贝命令。
连接对方服务器的过程和我们通过xshell等登录很像,有主机地址、用户名、密码就行。
-r
表示传输的是文件夹 后跟要发送的文件夹路径
如果是文件,就不需要-r
usr@100.123.456.789:/path/to/target_folder
依次是对方服务器的用户名
@主机地址
:目标文件夹路径
Step 3 确认连接,输入密码
Are you sure you want to continue connecting (yes/no)? yesusr@100.123.456.789's password: XXXXXX
正常情况就开始传了,速度感人。
2. 从其他服务器接收
这次假设要接收gene.fa
文件,基本原理是差不多的
- 知道对方服务器登录信息
- 接收文件夹
local_folder
有写入权限 - 指令顺序依然是:发送方在前,接收方在后,后续一样
scp usr@100.123.456.789:path/to/gene.fa local_folder
以上是用scp
互传文件的基本用法,希望对你有帮助。