如何从Linux服务器下载文件?常用方法有哪些?

从Linux服务器下载文件是日常运维和开发中的常见操作,根据服务器环境、文件大小及安全需求,可选择多种命令行工具实现,本文将详细介绍几种主流下载方法,包括原理、语法、参数及实际应用场景,帮助用户高效完成文件传输任务。

如何从linux服务器下载文件

基于SSH的安全传输:scp与rsync

scp(Secure Copy)
scp是利用SSH协议进行安全文件传输的工具,适合小文件或目录的快速拷贝,其语法简单且默认加密,无需额外配置。

  • 基本语法
    scp [选项] 源文件路径 目标地址  
  • 常用参数
    • -r:递归拷贝目录;
    • -P:指定SSH端口(默认22);
    • -p:保留文件权限、时间戳等元数据;
    • -C:启用压缩(适合大文件)。
  • 示例
    从服务器user@192.168.1.100下载/home/user/data.txt到本地当前目录:

    scp user@192.168.1.100:/home/user/data.txt .  

    递归下载服务器/home/user/docs目录到本地/backup

    scp -r -P 2222 user@192.168.1.100:/home/user/docs /backup  

rsync(Remote Sync)
rsync是更高效的文件同步工具,支持增量传输(仅同步变化部分),适合大文件或频繁同步场景,且可保留文件属性、支持断点续传。

  • 基本语法
    rsync [选项] 源文件路径 目标地址  
  • 常用参数
    • -a:归档模式(保留权限、时间戳等,相当于-rlptgoD);
    • -v:显示传输详情;
    • -z:传输过程压缩;
    • -P:显示传输进度,支持断点续传(相当于--partial --progress);
    • --delete:目标目录与源目录保持一致(删除目标中多余的文件)。
  • 示例
    同步服务器/data/logs目录到本地/local_logs,并删除本地已不存在的文件:

    rsync -avz --delete user@192.168.1.100:/data/logs /local_logs  

    断点续传未下载完的大文件large_file.zip

    rsync -avzP user@192.168.1.100:/home/user/large_file.zip .  

基于HTTP/FTP协议的下载:wget与curl

若服务器开启了HTTP/FTP服务(如Nginx、Apache),可直接通过wgetcurl下载文件,无需SSH账号。

如何从linux服务器下载文件

wget
wget是纯命令行下载工具,支持HTTP、FTP、HTTPS协议,可递归下载、断点续传,适合批量下载或离线下载。

  • 基本语法
    wget [选项] [URL]  
  • 常用参数
    • -c:断点续传;
    • -b:后台下载;
    • -O:指定本地文件名(默认保留远程文件名);
      -r:递归下载(配合-np不下载父级目录,-l限制层级);
      --limit-rate:限制下载速度(如--limit-rate=100k)。
  • 示例
    下载服务器HTTP上的file.zip并重命名为backup.zip

    wget -O backup.zip http://192.168.1.100/files/file.zip  

    递归下载服务器FTP目录/pub/docs下的所有文件(不超过2层):

    wget -r -np -l 2 ftp://user:pass@192.168.1.100/pub/docs  

curl
curl功能更强大,支持多种协议(HTTP/FTP/SCP等),可结合管道处理文件内容,适合需要精细控制的场景。

  • 基本语法
    curl [选项] -o [本地文件名] [URL]  
  • 常用参数
    -o/-O-o指定文件名,-O保留远程文件名;
    -L:跟随重定向;
    -u:设置用户名密码(如-u user:pass);
    :显示进度条。
  • 示例
    下载HTTP文件并显示进度条:

    curl -# -o data.json http://192.168.1.100/api/data  

    通过FTP匿名下载文件:

    curl -O ftp://192.168.1.100/pub/file.txt  

交互式文件传输:sftp

sftp(SSH File Transfer Protocol)是基于SSH的交互式文件传输工具,类似FTP但更安全,适合需要浏览服务器目录、选择性下载的场景。

如何从linux服务器下载文件

  • 基本语法
    sftp [用户名@服务器地址]  
  • 交互命令
    • get [远程文件] [本地路径]:下载文件;
    • get -r [远程目录]:递归下载目录;
    • ls/cd:列出/切换服务器目录;
      lcd/lls:切换/列出本地目录;
      exit:退出sftp。
  • 示例
    连接服务器并下载/home/user/docs目录:

    sftp user@192.168.1.100  
    sftp> cd /home/user/docs  
    sftp> get -r . /local/path  
    sftp> exit  

网络文件系统挂载:NFS/SMB

若服务器通过NFS(Linux/Unix)或SMB(Windows)共享目录,可直接挂载到本地后复制文件,适合频繁访问共享场景。

  • NFS挂载示例
    # 创建本地挂载点  
    mkdir /mnt/nfs_share  
    # 挂载服务器共享目录  
    mount -t nfs 192.168.1.100:/share /mnt/nfs_share  
    # 复制文件到本地  
    cp /mnt/nfs_share/file.txt /backup  
    # 卸载挂载点  
    umount /mnt/nfs_share  
  • SMB挂载示例(需安装cifs-utils)
    mkdir /mnt/smb_share  
    mount -t cifs //192.168.1.100/share /mnt/smb_share -o username=user,password=pass  
    cp /mnt/smb_share/data.csv /local/  
    umount /mnt/smb_share  

方法对比与选择建议

方法 适用场景 优点 缺点
scp 小文件/目录,需SSH加密传输 简单易用,默认加密 无增量传输,大文件效率低
rsync 大文件/目录,增量同步,断点续传 高效,保留属性,支持删除冗余 参数稍复杂,需SSH权限
wget/curl HTTP/FTP下载,批量下载,限速 协议支持广,适合公开资源 需服务器开启对应服务
sftp 交互式操作,需浏览服务器目录 安全,类似FTP操作体验 交互式效率低,不适合自动化
挂载 频繁访问共享目录,需本地操作 像本地文件操作,支持随机读写 需配置共享服务,占用挂载点

相关问答FAQs

Q1:下载大文件时网络中断,如何续传?
A:根据工具选择续传方式:

  • rsync:使用-P参数(如rsync -avP user@server:/file.zip .),会自动检测已下载部分并续传;
  • wget:使用-c参数(如wget -c http://server/file.zip),若本地存在同名文件,会从断点继续下载;
  • curl:使用-C -参数(如curl -C - -O http://server/file.zip),功能与wget类似。

Q2:如何批量下载服务器上符合特定格式的多个文件(如所有.log文件)?
A:可通过以下方式实现:

  • rsync:使用通配符(需服务器端支持bash扩展):
    rsync -av user@server:'/path/to/*.log' /local/  
  • sftp:使用mget命令(支持通配符):
    sftp user@server  
    sftp> cd /path/to  
    sftp> mget *.log  
  • scp+for循环:通过服务器端命令生成文件列表,本地循环下载:
    ssh user@server 'ls /path/to/*.log' | while read file; do scp user@server:"$file" /local/; done  

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/33046.html

(0)
酷番叔酷番叔
上一篇 2025年9月30日 10:05
下一篇 2025年9月30日 10:21

相关推荐

  • 在Linux操作系统中,如何正确运行.sh脚本文件的具体操作步骤?

    在Linux系统中,.sh文件是Shell脚本文件,它包含了一系列可执行的Linux命令,通过Shell解释器(如bash、sh等)逐行执行,以实现自动化任务或复杂操作,要运行.sh文件,需理解其执行原理、权限设置及常用方法,以下是具体操作步骤和注意事项,运行.sh文件的前提条件脚本文件存在:确保.sh文件已创……

    2025年8月26日
    2900
  • linux如何进入文件夹

    在Linux操作系统中,进入文件夹(切换工作目录)是最基础且频繁的操作之一,主要通过cd(change directory)命令实现,掌握cd命令的用法及相关的路径概念,能高效管理文件系统,本文将详细介绍Linux中进入文件夹的各种方法,包括基础语法、路径类型、常用参数及进阶技巧,帮助用户全面掌握目录切换操作……

    2025年9月24日
    1700
  • Linux打开文件有哪些方法?

    命令行打开文件(终端操作)查看文本文件内容cat 命令(显示全部内容)cat filename.txt # 直接输出文件内容适用场景:快速查看小文件,less 命令(分页浏览,推荐)less filename.txt # 按空格翻页,按 `q` 退出优势:支持上下滚动、搜索(输入 ),more 命令(基础分页……

    2025年6月14日
    5800
  • LVM快照能保护数据吗?

    在Linux系统中,创建快照(Snapshot)是保护数据安全和实现高效备份的核心技术,它能在瞬间捕获文件系统或磁盘的特定状态,后续可随时回滚到该状态,尤其适用于系统更新测试、数据恢复或虚拟机管理,以下是Linux创建快照的详细方法,涵盖主流技术方案:LVM是Linux内置的磁盘管理工具,支持为逻辑卷创建轻量级……

    2025年6月27日
    5100
  • Linux服务器如何将IP地址映射到项目目录并配置访问?

    在Linux服务器运维中,将IP地址映射到具体项目是实现多服务访问隔离、资源分配和用户访问管理的关键操作,无论是Web应用、API服务还是容器化部署,都需要通过合理的映射策略,确保外部请求能够准确指向对应的项目资源,本文将详细讲解Linux服务器中IP映射到项目的常见方法,包括基于端口的映射、基于域名的虚拟主机……

    2025年9月27日
    1900

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信