从 TFTP 服务器下载目录结构

use*_*963 7 tftp

我需要从 TFTP 服务器下载完整的目录结构。有没有一些简单的方法可以做到这一点?如果这是不可能的,那么我怎么能单独下载所有文件(假设我有服务器上所有文件的列表)?

Run*_*ium 7

您不能使用 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"
Run Code Online (Sandbox Code Playgroud)

运行:

./tftpbatch files.txt "10.0.0.5:69"
Run Code Online (Sandbox Code Playgroud)