当前位置: 首页 > news >正文

【工具】文件传输工具_wget·aria2·ssh·scp

文章目录

    • 单向下载
      • wget
      • aria2
      • 对比测试
    • 双向传输
      • ssh
      • scp

更好的阅读体验:https://wiki.dwj601.cn/tools/transfer/

本文介绍文件传输工具及其使用方法。

单向下载

wget

wget 是 Linux 系统中默认自带的命令行下载工具,支持 HTTP、HTTPS、FTP 等协议,功能丰富且使用简单。适合用于单文件的下载,支持断点续传、递归下载。

对于 Linux 用户,wget 通常已经预装。对于 Windows 用户,可以访问 Windows binaries of GNU Wget 来下载并安装。

单个文件下载最基本的命令格式是:

wget [url]

常用参数如下(更多内容可通过 wget --help 查看):

1)指定输出文件名。如果希望将下载的文件保存为指定的名称,可以使用 -O 参数:

wget -O myfile.txt [url]

2)指定下载目录。使用 -P 参数指定下载文件的保存目录:

wget -P /path/to/directory [url]

3)批量下载。如果有多个 URL 存放在一个文本文件中,可以使用 -i 参数来批量下载:

wget -i urls.txt

4)断点续传。如果下载中断,可以使用 -c 参数来继续下载:

wget -c [url]

还可以设置尝试的次数,使用 -t <count> 参数。例如尝试 5 次:

wget -c -t 5 [url]

5)递归下载。可以使用 wget 下载整个网站的资源。例如,下载一个网站中的所有 PDF 文件:

wget -r -A.pdf [url]

其中 -r 表示递归下载,-A.pdf 表示只下载 .pdf 后缀的文件。

6)后台下载。使用 -b 参数让下载任务在后台执行,且输出日志:

wget -b [url]

下载进程会在后台运行,下载的日志会被保存到 wget.log 文件中。

aria2

aria2 是一款轻量级的命令行下载工具,支持 HTTP/HTTPS、FTP、SFTP、BitTorrent 和 Metalink 协议,具备多线程下载、断点续传的功能。

安装 aria2 的方法如下:

=== “Ubuntu”

```bash
apt update && apt install aria2
```

=== “CentOS”

```bash
yum update && yum install aria2
```

=== “macOS”

```bash
brew install aria2
```

=== “Windows”

在 aria2 的 [GitHub Release](https://github.com/aria2/aria2/releases) 界面下载对应的版本即可。

单个文件下载最基本的命令格式是(单线程):

aria2c <URL>

常用参数如下(更多内容可通过 aria2c --help 查看):

1)多线程下载。使用 -x 参数,设置下载时的最大连接数。比如,使用 4 个连接来下载文件:

aria2c -x 4 <URL>

aria2 会将文件分成多个部分并通过不同的连接进行下载,从而显著提高下载速度。

!!! tip
多线程下载仅适用于单线程跑不满下行带宽的场景。同时需要注意,线程开多了容易被误判为爬虫从而被封禁 IP。

2)断点续传。如果下载中断了,可以使用以下命令恢复下载:

aria2c -c <URL>

3)下载多个文件。可以通过一个包含多个 URL 的文本文件,使用 -i 参数来批量下载:

aria2c -i urls.txt

对比测试

以服务器下载 HuggingFace 某个 9GB 单文件 为例。

工具线程数时间开销(秒)平均下行带宽(MB/s)图例
wget160421.3wget
aria2126632aria2 - 1
aria2214160aria2 - 2
aria248798aria2 - 4
aria2871121aria2 - 8

实验结果如上表所示:

  • 当达到平均下行带宽峰值(约 125MB/s)后,提升线程数就无法再提速了。
  • aria2 的单线程下载性能明显高于 wget。

双向传输

ssh

在计算机网络应用层中,我们介绍了安全外壳协议 SSH。基于该协议,工程师开发了加密传输程序——ssh,作为客户端和服务器之间的加密连接与数据传输工具。

ssh 支持「密码」和「密钥」两种连接方式。其中密码连接可以在服务器端禁用,密钥连接也可以设置额外的密码 (Passphrase)。考虑到密钥连接的场景更多,这里我们重点介绍密钥连接。其核心逻辑是:利用 ssh 程序在本地生成一对密钥,分别叫「公钥」和「私钥」。将公钥上传服务器后,就可以在本地利用 ssh 程序和远程服务器进行加密连接。基本使用流程如下:

1)本地生成密钥对(公钥 + 私钥),连按三次回车即可生成默认配置且不带 Passphrase 的密钥对:

ssh-keygen

生成默认配置且不带 Passphrase 的密钥对

2)在服务器的用户目录(一般为 /home/<user_name>/)下新建名为 .ssh 的文件夹,并在该文件夹内新建名为 authorized_keys 的文本文件,将之前生成的公钥中的所有内容复制进去并保存:

echo "<your_public_key> <local_user_name>@<local_computer_name>" >> authorized_keys

!!! tip
authorized_keys 可以存放多个公钥,以供多人连接使用。

3)修改文件和文件夹的权限与属主:

chmod 600 /home/<user_name>/.ssh/authorized_keys
chmod 700 /home/<user_name>/.ssh
chown -R <user_name>:<group_name> /home/<user_name>/.ssh

4)本地测试 SSH 连接:

ssh -i /path/to/private_key <user_name>@xxx.xxx.xxx.xxx  # 服务器 ip 地址

scp

在计算机网络应用层中,我们介绍了安全复制协议 SCP,基于该协议,工程师开发了安全复制程序——scp。该程序就两个核心用法:

1)拉取数据:

scp user@xxx.xxx.xxx.xxx:/path/to/source /path/to/target

2)推送数据:

scp /path/to/source user@xxx.xxx.xxx.xxx:/path/to/target

使用 -P <port> 指定端口,使用 -r 表示在文件夹下递归。

http://www.dtcms.com/a/614006.html

相关文章:

  • Python-PDF文件生成水印
  • 站长之家官网查询电子商务网站开发教程论文
  • openGauss:多核时代企业级数据库的性能与高可用新标杆
  • C++ 中dynamic_cast使用详解和实战示例
  • Git笔记---简单介绍与基本使用
  • php网站开发项目经验如何写wordpress是什么软件
  • 手机网站排名优化软件怎么查网站开发者联系方式
  • 菲律宾有做网站的吗人人开发网站
  • 部署Cloudflare免费图床——免费开源强大
  • Vue Router 3 升级 4:写法、坑点、兼容一次讲透
  • JSP 、JSTL、MVC分层思想——以登录验证为例
  • 新操作系统。
  • Hutool-JSON 工具类超全使用指南:告别 JSON 处理繁琐操作
  • 445 端口(SMB 服务)完整渗透流程总结
  • 咔咔做受视频网站摄影师网站建设
  • 大连建设网网址是多少啊重庆seo网站设计
  • TDengine 字符串函数 POSITION 用户手册
  • 燕郊建设局网站网站排名首页前三位
  • Docker容器使用手册——进阶篇(下)
  • C++入门指南:开启你的编程之旅
  • 智取能量:如何最大化战斗分数?
  • php网站开发技术要点网站模板制作流程
  • 进程和诊断工具速查手册(8.13):VMMap / DebugView / LiveKd / Handle / ListDLLs 一页式现场排障清单
  • 【ros2】ROS2话题(Topic)通信完全指南:订阅与发布详解
  • 网站安全证书有问题如何解决网站地图如何做
  • 演练:使用VB开发多智能体协作的荣格八维分析器
  • 第8章 广播机制
  • 最近的一对
  • 网站设计建网站互联网是做什么的
  • 【C++】AVL树:详细使用及旋转