如何从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上的ftp服务器

    Linux上,可使用命令ftp [服务器地址]或`sftp

    2025年8月19日
    11600
  • 电脑无法启动?bootx64.efi丢失该选哪个?

    基本原理Linux通过以下机制识别U盘:设备文件:插入U盘后,系统自动创建设备文件(如/dev/sdb),分区标识:启动U盘通常包含特殊分区标志(如EFI系统分区)或特定文件(如/efi/boot/bootx64.efi),文件系统:启动盘常用FAT32(用于UEFI)或ISO9660(光盘镜像格式),命令行识……

    2025年6月21日
    13700
  • 如何打包linux虚拟机

    Linux中,可使用tar命令结合压缩选项打包虚拟机相关文件和目录,也可通过创建

    2025年8月10日
    11200
  • Linux修改profile配置文件后如何使其立即生效?

    在Linux系统中,profile文件是用户环境配置的核心载体,用于定义环境变量、命令别名、默认路径等系统行为,当用户修改profile文件后,配置不会立即生效,需要通过特定方式重新加载文件或重启环境,才能使新配置对当前及后续的shell会话产生影响,本文将详细解析Linux中修改profile文件后的生效原理……

    2025年9月9日
    13500
  • Linux系统中如何查看所有用户及其详细信息?

    在Linux系统中,查看用户信息是系统管理和日常运维中的常见操作,掌握多种方法可以灵活应对不同场景,本文将详细介绍Linux中查看用户的各类命令及其使用场景,帮助用户全面了解系统中的用户状态,查看当前登录用户若需快速确认当前操作系统的登录用户,可以使用以下命令:whoami:最简单的命令,仅返回当前用户的用户名……

    2025年9月21日
    10800

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信