Skip to content

SerialとTelnet

Serial

sh
sshc serial --json
sshc serial /dev/ttyUSB0 --baud 115200 --encoding utf-8

データビット、パリティ、ストップビット、フロー制御(nonertsctsxonxoff)を接続時に指定できます。--dtr on|off--rts on|offは接続直後に一度だけ適用し、--break <期間>は接続直後に指定した長さのブレークを一度送ります。接続中に切り替える操作はありません。これらの指定はフロー制御の設定とは別です。

デバイス名はOSによって異なります。Linuxでは/dev/ttyUSB0、macOSでは/dev/cu.*、WindowsではCOM3などを指定します。

Telnet

sh
sshc telnet 192.0.2.20:23 --encoding shift_jis

Telnetの通信は平文で、サーバー認証もありません。信頼できる隔離ネットワークやVPNの内側など、別の保護がある環境だけで使用してください。

文字コード

SerialとTelnetは、utf-8shift_jiseuc-jpiso-2022-jpに対応しています。SSHの文字コードは、接続先ごとのsshc設定に保存できます。

自動処理から使う

sh
sshc serial /dev/ttyUSB0 --non-interactive \
  --expect 'login:' --timeout 20s -- 'admin'

sshc telnet 192.0.2.20:23 --non-interactive \
  --script ./steps.json --json

--scriptは手順ファイルの各ステップが送信文と終了条件を持つため、-- <text>--expect--read-forとは併用できません。

対話操作を必要としない自動処理では、終了条件として--expectまたは--read-forのどちらか1つを指定します。--expectは正規表現に一致した時点、--read-forは指定時間の読み取りを終えた時点で成功します。全体の--timeoutを超えた場合は終了コード124、引数が不正な場合は2、通信などほかの失敗は1、割り込みは130を返します。

待機時間、最大受信量、改行コード、出力が1バイト以上必要かどうかも指定できます。受信量は設定した上限で打ち切られ、JSONモードでは結果と警告が1つのオブジェクトとして返ります。