如何从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系统中,用户组是管理用户权限和资源访问的重要机制,随着系统运维或业务变化,可能需要删除不再需要的用户组,删除用户组需谨慎操作,避免影响系统或用户的正常使用,以下是详细的操作步骤和注意事项,删除用户组前的准备工作在执行删除操作前,需确认以下内容,确保删除过程安全可控:检查组是否存在:首先确认目标用户组……

    2025年10月6日
    4900
  • Linux中,如何查看文件的详细属性信息?

    在Linux系统中,文件属性是理解文件管理、权限控制和系统安全的基础,文件属性不仅包括我们熟知的权限(读、写、执行)、所有者和所属组,还包含时间戳、inode号、文件大小、硬链接数等元数据信息,掌握如何查看这些属性,对于日常运维、故障排查和安全管理至关重要,本文将详细介绍Linux中查看文件属性的多种方法,包括……

    2025年9月8日
    8800
  • Linux死锁如何预防检测恢复?

    死锁的成因死锁需同时满足四个条件:互斥:资源独占(如锁被一个进程持有),持有并等待:进程持有资源的同时请求新资源,不可抢占:资源只能由持有者主动释放,循环等待:多个进程形成资源请求的环形依赖,死锁预防(编程层)通过破坏死锁条件避免发生:锁顺序规则所有线程按全局固定顺序获取锁(如先锁A再锁B),破坏循环等待,示例……

    2025年7月4日
    10100
  • 如何连接Linux服务器?新手必学的实用连接方法与步骤详解

    连接Linux服务器是日常运维、开发和管理工作中常见的操作,核心是通过网络协议建立与远程服务器的通信链路,本文将详细介绍连接Linux服务器的准备工作、常用方法、具体步骤及注意事项,帮助不同操作系统的用户顺利完成连接,连接前的准备工作在尝试连接Linux服务器前,需确保以下信息准备就绪,否则可能导致连接失败:服……

    2025年9月30日
    7400
  • Linux如何显示文件后缀名?

    图形界面方法(适合桌面用户)GNOME桌面(Ubuntu/Fedora等)打开文件管理器(Files/Nautilus),点击右上角 ≡ 菜单 → Preferences(设置),切换到 Views(视图)选项卡,勾选 Show file extensions(显示文件扩展名),点击 Apply 生效,所有文件……

    2025年7月16日
    10000

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信