tabimoba.net

とあるエンジニアの雑記帳

SSHやTELNET接続時のちょっとしたファイル転送にはZModem転送がおすすめ


あまり大きなファイルの転送には向きませんが、TeraTermでサーバへSSHやTELNET接続中にちょっとしたファイルの転送をしたい時には、ZModem転送が非常に便利です。

CentOSやRedHat Enterprise Linuxでは、lrzszパッケージをインストールすると、ZModemプロトコルによるファイルの送受信が行えるようになります。TeraTermは、このZmodemによるファイルの送受信に対応しており、別途(S)FTPを立ち上げることなくサーバへのファイル転送を行うことができます。
また、TeraTermはSFTP転送にも対応していますが、ZModem転送ではTelnetやシリアル接続などSFTP転送が使えない状況でもファイル転送が行えます。

使用方法

アップロード時(クライアント→サーバ)

  • サーバ側のカレントディレクトリを、アップロードしたいディレクトリに移動します。

  • 以下のコマンドを実行します

    $ rz
    


  • TeraTermのメニューバーより[ファイル]-[転送]-[ZModem]-[送信]をクリックし、ファイルを選択するとアップロードが開始します

  • なお、アップロード後のファイルは、rzコマンド実行時のユーザーが所有者となります。

    ダウンロード時(サーバ→クライアント)

    1. TeraTermのメニューバーより[ファイル]-[ディレクトリ変更]をクリックし、ダウンロード先ディレクトリを指定します
    2. 以下のコマンドを実行します

      $ sz [ファイル名]
      


    3. TeraTermのメニューバーより[ファイル]-[転送]-[ZModem]-[受信]をクリックすると、ダウンロードが開始します

    ZModem転送の特徴

    メリット
    • SFTPやFTPクライアントを立ち上げる必要が無い
    • プロトコルを選ばない、ファイアウォールの影響を受けない
      (SSH,TELNET,シリアル接続など、TeraTermが対応している接続方法で接続できればファイル転送が可能)
    • rzコマンドを実行したディレクトリ(rzコマンド実行時のカレントディレクトリ)上にファイルがアップロードされる
    • アップロードされたファイルは、rzコマンドを実行したユーザーが所有者となる
    デメリット
    • 転送先にlrzszパッケージがインストールされている必要がある
    • 転送速度はあまり速くない

    ちなみに、ZModemプロトコルはインターネット普及以前のパソコン通信の時代にはファイル転送によく利用されたプロトコルでした(XModem,YModem,B-Plus,Quick-VANなんかもありましたね・・それ以前はISHとかも)。そのような時代を知る者としては、ZModemという言葉は非常に懐かしく感じます。