如何从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),可直接通过wget或curl下载文件,无需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安装软件有哪些方法?不同安装方式的具体步骤是什么?

    在Linux系统中,软件安装方式因发行版、软件类型及用户需求不同而多样化,掌握多种安装方法能灵活应对不同场景,Linux软件安装的核心逻辑是通过工具管理软件包及其依赖关系,确保系统稳定运行,常见方法包括包管理器安装、源码编译安装、Snap/Flatpak跨平台安装及AppImage便携式运行等,包管理器安装:发……

    2025年9月16日
    30100
  • 内存告急?你还在忽视它吗!

    监控内存使用可优化程序性能,快速定位卡顿或崩溃原因,并合理分配系统资源避免浪费。

    2025年6月21日
    26700
  • linux如何删除回收站文件

    Linux系统中的“回收站”并非像Windows那样由系统统一内置的功能,而是依赖于桌面环境或第三方工具实现,不同的桌面环境(如GNOME、KDE、XFCE)会自带回收站机制,通常将删除的文件移动到用户主目录下的特定隐藏文件夹中;而命令行环境下,用户可能需要借助trash-cli等工具实现类似功能,本文将详细说……

    2025年9月18日
    26800
  • linux如何卸载pcre

    Linux中,可以使用包管理器卸载pcre,使用apt-get命令:sudo apt-get remove pcre;

    2025年8月13日
    24000
  • 如何在Linux系统中使用dsedit工具?

    dsedit是Linux下一款图形化的服务配置管理工具,主要用于简化各类系统服务(如文件共享、目录服务、分布式存储等)的配置过程,通过直观的界面操作替代手动编辑配置文件,降低配置门槛并减少人为错误,以下从安装、启动、界面操作、配置步骤及常见问题等方面详细介绍其使用方法,安装与启动在主流Linux发行版中,dse……

    2025年8月23日
    25000

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信