Estoy trabajando en la migración de mi entorno de desarrollo de Windows a OS X y he encontrado un problema con TFTP. Utilizo TFTP para cargar archivos en un dispositivo de red integrado, esta es la única opción para obtener los archivos en el dispositivo (no se proporciona soporte SCP).
Cada vez que compilo firmware para este dispositivo, hay una serie de tres archivos que deben cargarse en él. En Windows tuve algunos scripts simples que cargarían todos los archivos que necesitaba en una sola toma, lo que simplifica mucho la implementación. Estos scripts fueron fáciles porque el cliente TFTP de Windows se ejecuta en comandos de una línea como este:
tftp -i <Server IP Address> PUT <Local Filename> <Server Filename>
No parece que haya ninguna forma de cargar un archivo con un comando como este en OS X. En cambio, tienes que abrir el programa tftp y ejecutar una serie de comandos que se parecen a esto:
$ tftp
tftp> connect <Server IP Address>
tftp> mode binary
tftp> put <Local Filename> <Server Filename>
tftp> quit
Hasta ahora no he tenido suerte en descubrir cómo escribir un script para hacer esto, aunque no tengo mucha experiencia con los scripts de shell de Unix. ¿Alguien ha intentado hacer algo similar y ha encontrado alguna solución?
Puede hacer un script de texto plano con los comandos que ingresaría en el
tftp>
y luego use el shell de Unixstdin
redirigir para pasar los comandos a latftp
ejecutable.Por ejemplo, en mi
/tmp/
directorio, pongo archivosbin1
bin2
ybin3
.Luego usé un editor de texto para hacer un archivo
loader.txt
con estos contenidos:No tener un servidor TFTP en ejecución, lo usé
ttcp -r -u
para abrir el puerto UDP 5001 y ver si el archivo estaba siendo procesado, cuando ejecuté lo siguiente en otra ventana:Los tiempos de espera se esperaban para mi caso de prueba.
Verifiqué que cada archivo se ofrecía a su vez después de los tiempos de espera, y que se ofrecían en modo binario, no en modo ascii, por lo que estoy seguro de que cada línea en
loader.txt
fue analizado a través de latftp
binario.Espero que esto ayude...
fuente