我需要从 TFTP 服务器下载完整的目录结构。有一些简单的方法可以做到这一点吗?如果这是不可能的,那么我如何单独下载所有文件(假设我有服务器上所有文件的列表)?
答案1
您无法使用 TFTP 列出文件或目录。阅读第一段RFC 1350 - 1. 目的。(或者更好的是,阅读整个文档。)
如果您有文件列表,则files.txt
可以使用expect
或curl
其他方式自动下载。使用curl的简单示例(作为入门):
tftpbatch
:
#!/bin/bash
server="tftp://$2"
while IFS= read -r path; do
[[ "$path" =~ ^\ *$ ]] && continue
dir="$(dirname "$path")"
printf "GET %s => %s\n" "$path" "$dir"
! [ -d "$dir" ] && mkdir -p "$dir"
curl -o "$path" "$server/$path"
done < "$1"
运行:
./tftpbatch files.txt "10.0.0.5:69"