如何从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系统时正确分区?

    在为电脑安装Linux系统时,合理的分区是确保系统稳定运行和数据安全的关键步骤,与Windows的C盘、D盘逻辑不同,Linux采用“挂载点”的概念,每个分区对应一个特定的目录,需要根据使用需求合理规划,以下是详细的Linux分区指南,包含准备工作、分区方案设计、具体操作步骤及注意事项,分区前的准备工作备份重要……

    2025年9月19日
    9900
  • 如何快速检查空间占用情况?

    如何强制卸载 Linux 内核模块(风险与操作指南)在 Linux 系统中,内核模块(Kernel Module)是动态加载到内核的代码,用于扩展系统功能(如硬件驱动、文件系统支持等),通常使用 modprobe -r 或 rmmod 命令卸载模块,但当模块因崩溃、死锁或占用状态无法正常卸载时,需强制卸载,此操……

    2025年7月24日
    11600
  • Linux系统下如何查看80端口是否开启及占用情况?

    在Linux系统中,80端口作为HTTP服务的默认端口,其状态直接影响Web服务的可用性,无论是排查服务异常、确认端口占用,还是验证防火墙规则,掌握查看80端口的方法都是运维和开发的基本技能,本文将详细介绍多种查看80端口状态的工具及其使用场景,帮助用户高效定位问题,使用netstat命令查看端口状态netst……

    2025年8月22日
    12000
  • linux打开网页如何

    Linux 中,可通过浏览器如 Firefox、Chrome 等打开网页,也可使用命令行工具

    2025年8月13日
    11800
  • linux下如何备份数据库

    Linux 下,可使用相应数据库的备份工具,如 MySQL 用 mysqldump

    2025年8月9日
    8700

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信