Eu tenho um dispositivo de atendimento em execução Linux OS
. Eu posso conectar este dispositivo via sessão telnet. Existem alguns arquivos no dispositivo que eu gostaria de baixar e enviar com novos arquivos. Como eu posso fazer isso? Eu tenho muito pouco conhecimento sobre o Linux OS. Você poderia por favor ajudar!
15
busybox --help
els -l /bin
els -l /usr/bin
, por favor.Respostas:
Isso depende de quais ferramentas estão instaladas no dispositivo cliente / suportadas pelo kernel.
Métodos possíveis para transferência de arquivos (não ordenados):
netcat
ousocat
ou combash
e / dev / tcpwget
oucurl
de um servidor webLeia Transferência simples de arquivos e Como obter arquivos para um host quando tudo o que você tem é um console serial? para mais possibilidades.
Copie
desktop.jpg
do dispositivo para o seu PC com o método netcat / nc:No seu PC, desative temporariamente (ou reconfigure, se possível) qualquer firewall e execute
e no dispositivo
onde você precisa substituir o ABCD pelo endereço IP do seu PC. Assim que a transferência for bem sucedida, o processo netcat no seu PC deve parar automaticamente. Caso contrário, algo está errado e você pode pará-lo comCtrl+C
Para a outra direção, basta trocar
<
e>
nos dois lados. Faça primeiro um backup do originaldesktop.jpg
(cp desktop.jpg desktop_orig.jpg
).fonte
sz
para enviar os arquivos pelo terminal. Você precisará dos dois lados.Não tenho ssh ou ftp (ou etc) no dispositivo.
Então, eu faço a seguir:
telnet a.b.c.d | tee telnet.log
cat file.txt
telnet.log
do lixoDeve ser fácil escrever utilitário para fazer o download / upload de arquivos através de telnet
fonte
Tente com o
rcp
comandoUse
man rcp
para obter mais informações, caso você queira automatizar transferências.A propósito, você sabe que isso é muito inseguro , certo?
fonte
Acabei de enviar um arquivo de firmware de ~ 7 Kb para um sistema embarcado Linux baseado no BusyBox pela porta serial.
Sem rede, sem utilitários de transferência de arquivos; sem utilitários Base64 ou qualquer coisa remotamente útil no dispositivo.
No host, codifiquei trivialmente um firmware no seguinte formato; um tipo de hex-dump que consiste em literais de shell combinados com
printf
comandos:basicamente
printf
comandos de shell com\x
seqüências de escape queprintf
interpretam. No dispositivo, eu fiz:em seguida, usou o
minicom
arquivo ASCII do send ( Ctrl-AS) para enviar esse arquivo para o host. Eu poderia ter usado copiar e colar, já que a quantidade de dados é pequena.Em seguida, marque executável e execute o
printf
script:Verificado usando o BusyBox se
md5sum
afirmware.bin
soma de verificação no dispositivo corresponde à imagem original do firmware no host.PS A sintaxe de aspas duplas do shell passa
\x
literalmente porque não é uma sequência de escape reconhecida; portanto, não precisamos dobrar as barras invertidas.fonte
@jofel e todos os outros, muito obrigado pela sua ajuda. Acho que o dispositivo possui um sistema operacional personalizado instalado, pois reconhece apenas alguns comandos linux específicos. O netcat não é reconhecido pelo dispositivo. No entanto, hoje consegui transferir o arquivo usando o comando tftp. Substituí com êxito o arquivo desktop.jpg por este comando. O que eu fiz é criar servidor tftp no sistema de janelas. entre através do telnet no dispositivo e execute estes comandos:
baixar arquivo tftp -l -p tftp -l desktop.jpg - 192.168.0.249 69
upload de arquivo tftp -l desktop.jpg -g 192.168.0.249 69
fonte
Eu fiz isso agora por estes métodos:
Crie um servidor ftp (instalando solerwinds) no sistema de janelas. entre através do telnet no dispositivo e execute estes comandos:
Para baixar um arquivo:
Exemplo:
ou fazer upload do arquivo:
Exemplo:
o local padrão do arquivo tftp é
C:\TFTP-Root
fonte
Eu uso o seguinte método para baixar pequenos arquivos binários via telnet na caixa do meu windows:
fonte