Preámbulo
Trabajo en el equipo de desarrollo de software integrado GNU Linux para equipos de telecomunicaciones. Durante el desarrollo, nuestro equipo obtiene una gran cantidad de firmwares para nuestro equipo: versiones de lanzamiento, versiones preliminares, compilaciones de depuración de prueba, compilaciones para diferentes ramas del rastreador de tareas, y todo esto para diferentes plataformas de hardware.
Para identificar archivos de firmware en el sistema de gestión de documentos y el rastreador, se utilizan hash MD5 en archivos * .md5. Como resultado, tenemos varios árboles en el sistema de archivos para almacenar firmware.
, , TFTP.
" " , TFTP md5-, .
, TFTP Firmware Server server-fw.
:
- RFC1350 "THE TFTP PROTOCOL (REVISION 2)"
- RFC2347 "TFTP Option Extension"
- RFC2348 "TFTP Blocksize Option"
- RFC7440 "TFTP Windowsize Option" ()
$ bin/server-fw -h Simple tftp firmware server 'server-fw' v0.2 licensed GPL-3.0 (c) 2019-2021 Vitaliy.V.Shirinkin, e-mail: vitaliy.shirinkin@gmail.com Some features: - Recursive search requested files by md5 sum in search directory - Use Firebird SQL server as file storage (optional requirement) Usage: bin/server-fw [<option1> [<option1 argument>]] [<option2> [<option2 argument>]] ... Possible options: {-h|-H|-?|--help} Show help message {-l|-L|--ip|--listen} {<IPv4>|[<IPv6>]}[:port] Listening address and port (default 0.0.0.0:69) Sample IPv4: 192.168.0.1:69 Sample IPv6: [::1]:69 {-s|-S|--syslog} <0...7> SYSLOG level flooding (default 6) --lib-dir <directory> System library directory --lib-name <name> Firebird library filename (default libfbclient.so) --root-dir <directory> Server root directory --search <directory> Directory for recursive search by md5 sum (may be much) --fb-db <database> Firebird access database name --fb-user <username> Firebird access user name --fb-pass <password> Firebird access password --fb-role <role> Firebird access role --fb-dialect <1...3> Firebird server dialect (default 3) --daemon Run as daemon --retransmit <N> Maximum retransmit count if fail --file-chuser <user name> Set user owner for created files (default root) --file-chgrp <group name> Set group owner for created files (default root) Warning: if user/group not exist then use root --file-chmod <permissions> Set permissions for created files (default 0664) Warning: can set only r/w bits - maximum 0666; can't set x-bits and superbits
( --root-dir) ( --search). GET .
( --file-chmod) ( --file-chuser --file-chgrp).
/etc/default/server-fw.
/etc/default/server-fw | |
IP | --listen |
SYSLOG | --syslog |
ROOT_DIR | --root-dir |
SERACH | --search |
FILE_CHUSER | --file-chuser |
FILE_CHGRP | --file-chgrp |
FILE_CHMOD | --file-chmod |
GET :
- md5-, :
—
— - :
—
—
PUT, .
(GNU Linux):
$ mkdir server-fw $ git clone https://github.com/shvit/server-fw.git server-fw ... $ cd server-fw $ make deb ... $
mail netascii, octet ( , - ? . ).
"windowsize" , .