在服务器间传输文件和文件夹是一个常见的任务,尤其是在需要同步数据或进行备份时。以下是使用 scp
命令在两台服务器之间进行文件传输的基本步骤。
服务器A 至 服务器B:文件传输指南
前提条件
- 确保服务器A和服务器B之间网络互通。
- 确认您有权限访问目标服务器,并且知道目标服务器的用户名和密码或私钥。
远程传文件:
scp -P XXX file.txt username@remote_host:/path/to/remote/directory
- scp:安全复制命令,用于在本地和远程计算机之间复制文件。
- -P:指定远程主机的端口号,如果使用默认SSH端口(22),可以省略此选项。
- file.txt:要复制的本地文件名。
- username:远程主机的用户名。
- remote_host:远程主机的IP地址或主机名。
- /path/to/remote/directory:远程主机上的目标目录路径。
注意:如果目标目录不存在,scp 命令将会失败。确保远程目录已经创建。
远程传文件夹:
scp -P XX -r /path/to/local/directory username@remote_host:/path/to/remote/directory
- -r:递归选项,允许复制整个目录及其内容到远程主机。
性能优化
对于大文件或大量文件的传输,考虑使用以下方法来提高传输性能:
- 使用压缩选项(如 gzip)来减少传输数据的大小。
- 在网络条件较好的情况下进行传输。
压缩文件
# 压缩单个文件:
gzip file.txt
这将创建一个名为 file.txt.gz 的压缩文件。# 压缩多个文件:
gzip file1.txt file2.txt file3.txt
这将分别创建 file1.txt.gz、file2.txt.gz 和 file3.txt.gz。# 使用特定压缩级别(1 为最快,9 为最小压缩):
gzip -9 file.txt
# 这将以最高压缩比压缩 file.txt。
解压文件
# 解压单个 .gz 文件:
gzip -d file.txt.gz
# 或者使用:
gunzip file.txt.gz # 这将解压 file.txt.gz 并恢复原始的 file.txt 文件。# 解压多个 .gz 文件:
gzip -d file1.txt.gz file2.txt.gz file3.txt.gz
或者使用:
gunzip file1.txt.gz file2.txt.gz file3.txt.gz
# 这将分别解压这些文件。
保留原始文件的同时解压:
gzip -d -c file.txt.gz > file.txt
这将解压 file.txt.gz 并把内容输出到 file.txt,同时保留原始压缩文件。
递归解压目录:
gzip -dr directory/
这将解压 directory/ 中的所有 .gz 文件,并保留目录结构。
删除原始文件
gzip 默认在压缩文件后删除原始文件。如果你想保留原始文件,可以使用 -k 选项:
gzip -k file.txt
这将创建 file.txt.gz 但保留原始的 file.txt。
note:gzip 通常只用于压缩文本文件和某些类型的数据文件,因为对于已经压缩过的媒体文件(如 JPEG 图像或 MP3 音频),使用 gzip 可能不会进一步减小文件大小,甚至可能会增大。
平时我也会这么传文件:
我一般是使用xshell,开两个终端,然后连接上xftp,同时开着(一个在左,一个在右),选择对应的内容,进行传输。
如下图这样:
参考
[1]: 如何超快速在两台服务器间互传文件