Tengo un dispositivo de asistencia funcionando Linux OS. Puedo conectar este dispositivo a través de la sesión de telnet. Hay algunos archivos en el dispositivo que me gustaría descargar y cargar con nuevos archivos. ¿Cómo puedo hacer eso? Tengo muy poco conocimiento sobre el sistema operativo Linux. ¿Podrías ayudarme?


busybox --helpyls -l /bin, yls -l /usr/bin, por favor.Respuestas:
Esto depende de qué herramientas estén instaladas en el dispositivo cliente / admitidas por el núcleo.
Posibles métodos para la transferencia de archivos (sin ordenar):
netcatosocato conbashy / dev / tcpwgetocurldesde un servidor webLea Transferencia de archivos simple y ¿Cómo llevar el archivo a un host cuando todo lo que tiene es una consola en serie? para más posibilidades
Copie
desktop.jpgdesde el dispositivo a su PC con el método netcat / nc:En su PC, desactive temporalmente (o reconfigure si es posible) cualquier firewall y ejecute
y en el dispositivo
donde necesita reemplazar ABCD con la dirección IP de su PC. Tan pronto como la transferencia haya sido exitosa, el proceso de netcat en su PC debería detenerse automáticamente. Si no, algo está mal y puedes detenerlo conCtrl+C
Para la otra dirección, solo intercambie
<y>en ambos lados. Primero haga una copia de seguridad del originaldesktop.jpg(cp desktop.jpg desktop_orig.jpg).fuente
szpara enviar los archivos a través del terminal. Lo necesitará en ambos lados.No tengo ssh o ftp (o etc.) en el dispositivo.
Entonces, hago lo siguiente:
telnet a.b.c.d | tee telnet.logcat file.txttelnet.logde la basuraDebería ser fácil escribir una utilidad para descargar / cargar archivos a través de telnet
fuente
Prueba con el
rcpcomando.Úselo
man rcppara obtener más información en caso de que desee automatizar las transferencias.Por cierto, sabes que esto es muy inseguro , ¿verdad?
fuente
Acabo de cargar un archivo de firmware de ~ 7 Kb en un sistema embebido Linux basado en BusyBox a través del puerto serie.
Sin redes, sin utilidades de transferencia de archivos; sin utilidades Base64 ni nada remotamente útil en el dispositivo.
En el host, codifiqué trivialmente un firmware en el siguiente formato; un tipo de volcado hexadecimal que consiste en literales de shell combinados con
printfcomandos:básicamente
printfcomandos de shell con\xsecuencias de escape queprintfinterpreta. En el dispositivo que hice:luego usó el
minicomenvío de archivos ASCII de (Ctrl-AS ) para enviar este archivo al host. Podría haber usado copiar y pegar, ya que la cantidad de datos es pequeña.Luego, marcó el ejecutable y ejecutó el
printfscript:Se comprobó mediante BusyBox
md5sumque lafirmware.binsuma de comprobación en el dispositivo coincide con la imagen de firmware original en el host.PD La sintaxis de comillas dobles de shell pasa
\xliteralmente porque no es una secuencia de escape reconocida; Por lo tanto, no tenemos que duplicar las barras invertidas.fuente
@jofel y todos los demás, muchas gracias por su amable asistencia. Creo que el dispositivo tiene un sistema operativo personalizado instalado, ya que reconoce solo algunos comandos específicos de Linux. netcat no es reconocido por el dispositivo. Sin embargo, hoy tuve éxito al transferir el archivo usando el comando tftp. Reemplacé con éxito el archivo desktop.jpg con este comando. Lo que hice fue crear un servidor tftp en un sistema de ventanas. inicie sesión a través de telnet en el dispositivo y ejecute estos comandos:
descargar archivo tftp -l -p tftp -l desktop.jpg - 192.168.0.249 69
subir archivo tftp -l desktop.jpg -g 192.168.0.249 69
fuente
He hecho esto ahora por estos métodos:
Cree un servidor ftp (instalando solerwinds) en el sistema de ventanas. inicie sesión a través de telnet en el dispositivo y ejecute estos comandos:
Para descargar un archivo:
Ejemplo:
o para cargar el archivo:
Ejemplo:
la ubicación predeterminada del archivo tftp es
C:\TFTP-Rootfuente
Utilizo el siguiente método para descargar pequeños archivos binarios a través de telnet en mi ventana de Windows:
fuente