出席装置が稼働していますLinux OS
。 Telnetセッションを介してこのデバイスに接続できます。デバイスに新しいファイルと一緒にダウンロードしてアップロードしたいファイルがあります。どうすればいいですか?私はLinuxオペレーティングシステムの知識がほとんどありません。助けてください!
答え1
クライアントデバイスのカーネルがどのツールをインストール/サポートしているかによって異なります。
可能なファイル転送方法(順序なし):
- SSH/SFTP
- base64/uuencode を使用してバイナリを表示可能な形式にエンコードし、Telnet 端末ウィンドウからコピーします。
netcat
単純なtcpまたは/dev/tcpをsocat
介して接続bash
wget
curl
Webサーバーを使用したアップロード/ダウンロード- コマンドラインFTPクライアントを使用するFTPサーバー
- サンバまたはnfsマウント
読む簡単なファイル転送そしてシリアルコンソールのみがあるときにホストにファイルをインポートするにはどうすればよいですか?より多くの可能性のために。
desktop.jpg
netcat/nc メソッドを使用してデバイスからコンピュータにコピーします。
コンピュータですべてのファイアウォールを一時的に無効にする(または可能であれば再構成)、次の手順を実行します。
netcat -l -p 10000 > desktop.jpg
そしてデバイスで
busybox nc A.B.C.D -p 10000 < desktop.jpg
ABCDをコンピュータのIPアドレスに置き換える必要があります。転送が成功すると、コンピュータのnetcatプロセスは自動的に停止します。そうでない場合は、何かが間違っている可能性CtrlがありますC。
他の方向の場合は、<
両側の合計を変更するだけです。>
元のファイルdesktop.jpg
(cp desktop.jpg desktop_orig.jpg
)のバックアップから始めてください。
答え2
私のデバイスにsshやftp(またはなど)がありません。
だから私が次にやるべきことは次のとおりです。
telnet a.b.c.d | tee telnet.log
- ログイン後にファイルに移動
cat file.txt
- セッションを閉じます(tmuxウィンドウを閉じます)
telnet.log
ごみ箱から削除
Telnetを介してファイルをダウンロード/アップロードするユーティリティを作成するのは簡単です。
答え3
私はシリアルポートを介してBusyBoxベースのLinux組み込みシステムに〜7Kbのファームウェアファイルをアップロードしました。
ネットワーキングもなく、ファイル転送ユーティリティもなく、Base64ユーティリティもなく、デバイス上でリモートで役に立つものもありません。
ホストはファームウェアをprintf
シェルリテラルとコマンドで構成された16進ダンプ形式にエンコードしました。
printf "\xDE\xAD\xBE\xEF\x...\xF0"
printf "\xCA\xFE\x33\xE1\x...\xD3"
デフォルトでは、エスケープシーケンスが解釈されたシェルコマンドですprintf
。私のデバイスでは:\x
printf
device $ cat > firmware.sh
その後、このファイルはminicom
ASCIIファイルsend()を使用してホストに転送されます。Ctrl-ASデータ量が少ないため、コピーして貼り付けを使用した可能性があります。
その後、実行可能ファイルを表示してprintf
スクリプトを実行します。
device $ chmod a+x firmware.sh
device $ ./firmware.sh > firmware.bin
BusyBoxを使用して、デバイスのチェックサムがホストの元のmd5sum
ファームウェアfirmware.bin
イメージと一致していることを確認します。
PSシェル二重引用符の構文は、\x
認識されるエスケープシーケンスではないため、そのまま渡されるため、バックスラッシュを2倍にする必要はありません。
答え4
コンピュータから:
ncat -l -p 3000 > file.name
リモートデバイスから:
busybox nc -w 3 <your PC IP> 3000 < file.name