服务器搭建怎么传输数据?

很高兴为您详细讲解服务器搭建后如何传输数据,这是一个非常核心的运维和开发技能。

数据传输可以分为几个层面和多种方法,我将从基础概念具体操作为您梳理。

一、 核心概念:你在传输什么?从哪里到哪里?

首先明确三个要素:

1、数据来源和目标:是从你的本地电脑传到远程服务器,还是反过来?或者是两台远程服务器之间互传?

2、数据性质:是单个/少量文件,还是整个项目目录?是静态文件还是需要实时同步的数据库?

3、传输方向术语

上传从本地到远程。

下载从远程到本地。

二、 常用数据传输方法(从简单到专业)

以下方法主要针对 Linux/Unix 服务器(包括 macOS 终端),Windows 服务器部分原理相通,但工具略有不同。

1. 基于 SCP (Secure Copy) - 最简单直接

SCP 基于 SSH 协议,所以只要你能用 SSH 登录服务器,就能用 SCP,非常方便安全。

基本语法:

scp [选项] <源文件路径> <目标路径>

常见场景示例:

上传文件到服务器

    # 将本地的 file.txt 上传到服务器 192.168.1.100 的 /home/user/ 目录下
    scp /path/to/local/file.txt user@192.168.1.100:/home/user/

从服务器下载文件

    # 将服务器上的 /var/log/app.log 下载到本地当前目录
    scp user@192.168.1.100:/var/log/app.log ./

上传整个目录(使用-r 递归选项)

    # 将本地的 my_project 文件夹整个上传到服务器的 /opt/ 目录
    scp -r /path/to/local/my_project user@192.168.1.100:/opt/

指定 SSH 端口(如果服务器 SSH 端口不是默认的 22)

    scp -P 2222 local_file.txt user@192.168.1.100:/home/user/

优点:简单、安全、无需额外配置。

缺点:无法同步(即只复制变化的文件),传输大量小文件时速度较慢。

2. 基于 SFTP (SSH File Transfer Protocol) - 交互式文件管理

SFTP 同样基于 SSH,但它提供了一个类似 FTP 的交互式命令行界面,可以执行列出目录、删除文件等操作。

基本使用:

1、 连接服务器:

    sftp -P 2222 user@192.168.1.100

2、 进入交互模式,使用类似 FTP 的命令:

put local_file上传文件。

get remote_file下载文件。

ls列出服务器当前目录文件。

lls列出本地当前目录文件。

cd切换服务器目录。

lcd切换本地目录。

exitbye退出。

图形化工具

对于不习惯命令行的用户,可以使用图形化 SFTP 客户端,如FileZillaWinSCP,你只需要输入服务器的 IP、端口、用户名和密码,就可以像操作本地文件夹一样拖拽文件进行传输。

3. 使用 Rsync - 高效同步的专业选择

Rsync 是增量同步的神器,它只会传输文件中被修改的部分,从而极大提高效率,特别适合备份或同步大量文件。

基本语法:

rsync [选项] <源路径> <目标路径>

常见场景示例:

同步本地目录到服务器(最常用)

    # -a: 归档模式,保持所有文件属性
    # -v: 显示详细过程
    # -z: 压缩传输
    # --delete: 让目标目录和源目录严格一致,删除目标端源端没有的文件(小心使用!)
    rsync -avz /path/to/local/folder/ user@192.168.1.100:/path/to/remote/folder/

注意:源路径结尾的/ 很重要,有/ 表示同步文件夹,没有/ 则表示同步文件夹本身

从服务器同步到本地

    rsync -avz user@192.168.1.100:/path/to/remote/folder/ /path/to/local/folder/

排除某些文件

    rsync -avz --exclude='node_modules' --exclude='.git' /path/to/local/project/ user@server:/path/remote/

优点:高效、灵活、适合备份和镜像。

缺点:命令选项较多,需要学习。

4. 使用 Git - 针对代码和文本项目

如果你的数据是代码或文档,使用 Git 是更现代、更专业的方式。

工作流:

1、 在本地电脑上,将项目初始化为 Git 仓库 (git init)。

2、 将代码提交到本地仓库 (git add . &git commit)。

3、 在服务器上同样安装 Git,并克隆仓库。

    # 在服务器上操作
    git clone your-git-repository-url /path/on/server

4、 后续更新时,在本地提交后推送到远程 Git 仓库(如 GitHub, GitLab, Gitee)。

5、 在服务器上进入项目目录,执行git pull 拉取最新代码。

优点:版本控制、协作方便、部署流程清晰。

缺点:不适合传输二进制大文件(如图片、视频、数据库文件)。

其他高级方法

curl / wget直接在服务器上使用wgetcurl 从公网下载文件。

    wget https://example.com/path/to/file.tar.gz

云存储服务如 AWS S3, 阿里云 OSS,先将数据上传到云存储,然后服务器再从云存储下载,适合超大规模文件分发。

rsync over SSH (rsync daemon)为 Rsync 配置守护进程模式,实现更高效的专用文件同步服务。

方法 适用场景 优点 缺点
SCP 快速传输单个或少量文件 简单、安全、无需 setup 无法增量同步,效率较低
SFTP/FileZilla 图形化操作,临时文件管理 直观易用,功能全面 命令行下效率不如 SCP/rsync
Rsync定期备份、大量文件同步、部署增量同步,效率极高 命令稍复杂,需要理解选项
Git代码、配置文件、文档的部署版本控制,流程规范 不适合非文本的大文件
curl/wget 服务器从公网直接下载 简单直接 仅限于从公网下载

新手入门建议:

1、 从SCPFileZilla 开始,感受基本的文件传输。

2、 当你需要频繁更新网站或应用时,学习并使用Rsync,它会极大提升你的效率。

3、 如果你是开发者,一定要掌握Git 进行代码部署。

希望这份详细的指南能帮助你更好地进行服务器数据管理!

文章摘自:https://idc.huochengrm.cn/fwq/18979.html

评论