MikroTik系统中的/tool fetch
是一个用于下载文件或发送HTTP请求的命令,功能类似于其他系统中的curl
或wget
工具。它是MikroTik系统中实现自动化网络任务的重要工具之一,比如下载文件、获取数据、发送API请求等。
功能
- 文件下载:
- 从HTTP、HTTPS、FTP等协议的服务器下载文件到设备。
- 发送HTTP请求:
- 支持GET和POST请求,可以用于与REST API或动态DNS服务交互。
- 用户验证:
- 支持Basic Authentication方式,适用于需要登录的资源访问。
- 代理支持:
- 可以通过代理服务器发送请求。
常用选项
以下是/tool fetch
中常用的参数和其作用:
参数 | 作用 |
---|---|
url | 请求的完整URL地址,例如http://example.com/file.txt 。 |
mode | 请求模式:http (默认)、ftp 、https 等。 |
dst-path | 下载文件后保存的路径,例如/file.txt ,默认保存在设备的文件系统中。 |
user | 用于验证的用户名,例如admin (适用于需要认证的请求)。 |
password | 用于验证的密码。 |
http-method | HTTP方法:get (默认)或post ,用来指定请求类型。 |
http-header | 自定义HTTP头信息,例如Content-Type: application/json (可选)。 |
post-data | POST请求的内容,用于发送JSON或表单数据。 |
keep-result | 是否保留结果:yes 会在global 变量中返回结果,no 不会保留(默认:no )。 |
proxy | 指定HTTP或HTTPS代理地址,例如192.168.1.1:8080 。 |
check-certificate | 验证HTTPS证书:yes (默认)会验证,no 跳过验证(仅HTTPS)。 |
常见用法
1. 下载文件
从指定URL下载文件并保存到设备的文件系统:
/tool fetch url="http://example.com/file.txt" dst-path="file.txt"
下载完成后,文件会存储在MikroTik的文件列表中,可以通过/file print
查看。
2. HTTP GET 请求
向某个服务器发送GET请求并输出结果:
/tool fetch url="http://example.com/api/status" keep-result=yes
:put $"result"
keep-result=yes
:结果会保存在变量result
中,脚本中可通过:put
查看。
3. HTTP POST 请求
发送POST请求,附加自定义数据(如JSON):
/tool fetch url="http://example.com/api/update" http-method=post \
http-header="Content-Type: application/json" \
post-data="{\"key\":\"value\"}" keep-result=yes
:put $"result"
4. 带身份验证的请求
访问需要用户名和密码验证的资源:
/tool fetch url="http://example.com/private/data" user="username" password="password" dst-path="data.json"
5. 使用代理服务器
通过代理发送请求:
/tool fetch url="http://example.com/file.txt" proxy=192.168.1.1:8080
6. 不验证HTTPS证书
如果服务器使用了自签名证书或不需要验证证书:
/tool fetch url="https://example.com/api" check-certificate=no
返回值与状态检查
/tool fetch
执行后,可以通过以下方式检查执行状态:
- 文件下载完成:文件会显示在
/file print
中。 - 结果返回到变量:当
keep-result=yes
时,结果会保存在变量result
中。 - 检查状态:
:if ($"status" != "finished") do={ :put "Fetch failed: $status" }
使用场景
- 动态域名更新: 使用
/tool fetch
向动态DNS服务提供商更新IP地址。 - 自动化备份: 定期下载或上传配置文件到远程服务器。
- 监控与报警: 获取远程API的状态信息并通过MikroTik脚本处理。
- 数据同步: 从外部服务器获取配置文件、脚本或规则更新。
注意事项
- HTTPS兼容性: MikroTik需要支持加密模块(如
ssl
包)来处理HTTPS请求。 - 文件路径: 保存文件时,请确保设备的存储空间足够,尤其是高频率下载时。
- 安全性: 避免在脚本中硬编码敏感信息(如用户名和密码),可以通过加密方式存储或限制权限。
通过合理配置,/tool fetch
可以显著增强MikroTik设备的功能和灵活性!