質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
FTP

FTP(File Transfer Protocol)は、ネットワークでのファイル転送を行うための通信プロトコルの1つである。

GET

GETとはHTTPが対応するリクエストメソッドの一つです。クライアントからサーバーへ送られたURLパラメータのデータを取得する時必要がある時に使われます。

SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

SSL

SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Q&A

解決済

1回答

5008閲覧

特定の接続先に対してlftpでgetを行うと0バイトで完了してしまう

m_takahumi

総合スコア3

FTP

FTP(File Transfer Protocol)は、ネットワークでのファイル転送を行うための通信プロトコルの1つである。

GET

GETとはHTTPが対応するリクエストメソッドの一つです。クライアントからサーバーへ送られたURLパラメータのデータを取得する時必要がある時に使われます。

SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

SSL

SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

0グッド

0クリップ

投稿2021/07/26 06:57

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)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

lftpバージョン4.9.2で直ったようです

参考
File empty through "get" via SFTP #312
NEWS

投稿2021/07/27 04:41

jbpb0

総合スコア7651

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m_takahumi

2021/07/27 22:15

確認したところ、まさにLFTP | Version 4.8.4を使用しておりました。 lftpのバージョンを最新にアップデートして再度検証してみます。 ご回答ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問