SolarisサーバからLinuxサーバへのマイグレーションを行っており、現行サーバ下でlftpコマンドを用いて接続している外部サーバとの接続テストを実施しているのですが、特定の接続先との通信のみ、ファイルのgetを行った際にデータが正しく受信できない事象が発生しており困っています。
サーバのマイグレーションによりOSやOpenSSHのバージョンなど様々な環境が変わっているため、確認すべきポイントは色々あるかと思うのですが、どなたかこのような事象が発生するケースについて心当たりや確認すべきポイントなどのお知恵を拝借できないでしょうか。
他に記載すべきバージョン情報などありましたらご指摘くださいませ。
よろしくお願いいたします。
前提・実現したいこと
(SFTPではなく)lftpを使用してgetコマンドで先方サーバのデータを受信できるようにしたい。
現在lftpでの接続は複数の相手と行っており、他の接続先とは問題なく通信が行えている。
■問題の接続先Aについて
・鍵認証によるSFTP接続を行っている
・接続情報は~/.ssh/configに設定し、鍵ファイルも同一ディレクトリ下に設置
★できること
・lftpコマンドでのログイン
・ディレクトリ移動(cd)
・データ送信(put)
★できないこと
・データ受信(get)
発生している問題・エラーメッセージ
接続先サーバに設置してあるデータに対してgetコマンドを実行すると即座にコマンドが返ってき、ローカルサーバ上に同名の0バイトデータが作成されている。(0バイトで「受信完了」とみなされて終了してしまう?)
※ただし、複数のファイルに対してmgetを行うと一部のファイルは正常に受信できた。
(以下の例で"mget DeliveryOrder*"を実行すると3ファイルは0バイト、3ファイルは容量がリモートサーバ上のファイルと一致)
以下、デバッグモードにて実行した際のログを記載
■lftpにてログイン⇒問題なし
[hulft@New2 ~]$ lftp lftp :~> debug 10 lftp :~> set ftp:passive-mode off lftp :~> open -u USER sftp://hoge.sftp.01 notice: cannot open /home1/hulft/.netrc: そのようなファイルやディレクトリはありません パスワード:
■ディレクトリ移動とリスト表示⇒問題なし
lftp USER@hoge.sftp.01:~> cd DIR lftp USER@hoge.sftp.01:~/DIR> ls -l ---- path on wire is `/sftp-s3bucket/NHUB/DIR' ---> sending a packet, length=32, type=11(OPENDIR), id=7 <--- got a packet, length=10, type=102(HANDLE), id=7 ---- got file handle 31 (1) ---> sending a packet, length=10, type=12(READDIR), id=8 <--- got a packet, length=1156, type=104(NAME), id=8 ---- file name count=7 ---- NameAttrs(name="DeliveryOrderNHUB_20210719083601175.csv",type=1,longname="-rwxr--r-- 1 - - 16963 Jul 19 01:52 DeliveryOrderNHUB_20210719083601175.csv") ---- NameAttrs(name="DeliveryOrderNHUB_20210719112002020.csv",type=1,longname="-rwxr--r-- 1 - - 2413 Jul 19 02:20 DeliveryOrderNHUB_20210719112002020.csv") ---- NameAttrs(name="DeliveryOrderNHUB_20210719113606962.csv",type=1,longname="-rwxr--r-- 1 - - 93963 Jul 19 02:36 DeliveryOrderNHUB_20210719113606962.csv") ---- NameAttrs(name="DeliveryOrderNHUB_20210719150615854.csv",type=1,longname="-rwxr--r-- 1 - - 213467 Jul 19 06:06 DeliveryOrderNHUB_20210719150615854.csv") ---- NameAttrs(name="DeliveryOrderNHUB_20210719163600174.csv",type=1,longname="-rwxr--r-- 1 - - 7392 Jul 19 07:36 DeliveryOrderNHUB_20210719163600174.csv") ---- NameAttrs(name="DeliveryOrderNHUB_20210720083502483.csv",type=1,longname="-rwxr--r-- 1 - - 23471 Jul 19 23:35 DeliveryOrderNHUB_20210720083502483.csv") ---- NameAttrs(name="GoodsPlanNHUB_20210719160004987.csv",type=1,longname="-rwxr--r-- 1 - - 712 Jul 19 07:00 GoodsPlanNHUB_20210719160004987.csv") ---> sending a packet, length=10, type=12(READDIR), id=9 ---> sending a packet, length=10, type=12(READDIR), id=10 <--- got a packet, length=55, type=101(STATUS), id=9 ---- status code=1(EOF), message=no more files in the directory ---- eof -rwxr--r-- 1 - - 16963 Jul 19 01:52 DeliveryOrderNHUB_20210719083601175.csv -rwxr--r-- 1 - - 2413 Jul 19 02:20 DeliveryOrderNHUB_20210719112002020.csv -rwxr--r-- 1 - - 93963 Jul 19 02:36 DeliveryOrderNHUB_20210719113606962.csv -rwxr--r-- 1 - - 213467 Jul 19 06:06 DeliveryOrderNHUB_20210719150615854.csv -rwxr--r-- 1 - - 7392 Jul 19 07:36 DeliveryOrderNHUB_20210719163600174.csv -rwxr--r-- 1 - - 23471 Jul 19 23:35 DeliveryOrderNHUB_20210720083502483.csv -rwxr--r-- 1 - - 712 Jul 19 07:00 GoodsPlanNHUB_20210719160004987.csv copy: get hit eof copy: waiting for put confirmation copy: put confirmed store copy: get is finished - all done ---> sending a packet, length=10, type=4(CLOSE), id=11 <--- got a packet, length=55, type=101(STATUS), id=10 ---- status code=1(EOF), message=no more files in the directory <--- got a packet, length=32, type=101(STATUS), id=11 ---- status code=0(OK), message=Success
■0バイトでないファイルに対してgetコマンド実行⇒0バイトで終了してしまう
lftp USER@hoge.sftp.01:~/DIR> get DeliveryOrderNHUB_20210719083601175.csv ---- path on wire is `/sftp-s3bucket/NHUB/DIR/DeliveryOrderNHUB_20210719083601175.csv' ---> sending a packet, length=80, type=3(OPEN), id=12 <--- got a packet, length=10, type=102(HANDLE), id=12 ---- got file handle 32 (1) ---> sending a packet, length=10, type=8(FSTAT), id=13 <--- got a packet, length=29, type=105(ATTRS), id=13 ---- file info: size=16963, date=Mon Jul 19 10:52:33 2021 ---> sending a packet, length=22, type=5(READ), id=14 ---> sending a packet, length=22, type=5(READ), id=15 <--- got a packet, length=25, type=101(STATUS), id=15 ---- status code=1(EOF), message= ---- eof copy-peer: EOF on sftp://USER@hoge.sftp.01/sftp-s3bucket/NHUB/DIR/DeliveryOrderNHUB_20210719083601175.csv ---> sending a packet, length=10, type=4(CLOSE), id=16 copy: get hit eof copy: waiting for put confirmation copy: put confirmed store copy: get is finished - all done <--- got a packet, length=16972, type=103(DATA), id=14 <--- got a packet, length=32, type=101(STATUS), id=16 ---- status code=0(OK), message=Success
■試しに同ファイルに対してcatコマンド実行⇒同様に0バイトで終了?してしまう
lftp USER@hoge.sftp.01:~/DIR> cat DeliveryOrderNHUB_20210719083601175.csv ---- path on wire is `/sftp-s3bucket/NHUB/DIR/DeliveryOrderNHUB_20210719083601175.csv' ---> sending a packet, length=80, type=3(OPEN), id=17 <--- got a packet, length=10, type=102(HANDLE), id=17 ---- got file handle 33 (1) ---> sending a packet, length=10, type=8(FSTAT), id=18 <--- got a packet, length=29, type=105(ATTRS), id=18 ---- file info: size=16963, date=Mon Jul 19 10:52:33 2021 ---> sending a packet, length=22, type=5(READ), id=19 ---> sending a packet, length=22, type=5(READ), id=20 <--- got a packet, length=25, type=101(STATUS), id=20 ---- status code=1(EOF), message= ---- eof copy-peer: EOF on sftp://USER@hoge.sftp.01/sftp-s3bucket/NHUB/DIR/DeliveryOrderNHUB_20210719083601175.csv ---> sending a packet, length=10, type=4(CLOSE), id=21 copy: get hit eof copy: waiting for put confirmation copy: put confirmed store copy: get is finished - all done copy: get hit eof copy: waiting for put confirmation copy: put confirmed store copy: get is finished - all done <--- got a packet, length=16972, type=103(DATA), id=19 <--- got a packet, length=32, type=101(STATUS), id=21 ---- status code=0(OK), message=Success lftp USER@hoge.sftp.01:~/DIR> quit ---- Disconnecting [hulft@New2 ~]$
試したこと
■lftpでのデータ"送信"(put)は問題なく行える⇒getのみができない?
■先方サーバにデータが複数存在する場合にmgetを実行⇒いくつかのファイルは正しく受信でき、いくつかのファイルは0バイトで終了した。
■lftpではなくSFTPコマンドでのファイルget⇒正常に受信できる(0バイトではなくデータ容量が一致)
sftp -i ~/.ssh/hoge.pem USER@hogehost.amazonaws.com
補足情報(FW/ツールのバージョンなど)
■現行 OS:Solaris
Oracle Corporation SunOS 5.11 11.2
■移行先 OS:Linux
Red Hat Enterprise Linux release 8.2 (Ootpa)
回答1件
あなたの回答
tips
プレビュー